Hi, i'm writing a project for my A-level course in python and ive come to a problem, i know the forum rules say not to expect a quick sollution and i dont want that as i like to understand things instead of doing them blindly.
i've written a class which displays a window with various widgets on it including some buttons.
what i want to know is if it is possible to have the functions for the commands of these buttons inside a different class as later on i hope to write another class that displays a different window that shares some of the same buttons.
Bellow is a simplified attempt at what im trying to do (some parts i barely understand and have been helped with but i understand mainly what its trying to do)
it comes with this error:
"TypeError: unbound method button1() must be called with Class2 instance as first argument (got nothing instead)"
from Tkinter import * class Class1: def __init__(self): self.root=Tk() self.root.title("test") self.root.resizable(width=False, height=False) self.can1=Canvas(self.root, width=500, height=500, bg="black") self.can1.pack(expand=False, fill=X) b1 = Button(self.can1,text="button 1",command=Class2.button1) self.can1.create_window(20,20, window=b1, anchor = NW) class Class2: def __init__(self): pass def button1(self): self.window2=Toplevel(bg = 'black') self.window2.title("test window 2") self.window2.resizable(width=False, height=False) self.window2.grid() self.can2=Canvas(self.window2, width=500, height=500, bg="black") gui = Class1() gui.root.mainloop()