Ich habe eine Oberfläche mit Tkinter entworfen. Dabei habe ich mehrere Klassen kreiert. Leider bekomme ich die Button-Funktion der am tiefsten verschachtelten Klasse nicht zum Laufen. Die Struktur der Oberfläche sieht folgendermaßen aus:
Code: Alles auswählen
class Application:
:
class MainWindow(Application):
:
self.x = WorkSpace()
:
class Workspace:
:
self.y = Toolbar()
:
class ToolBar:
def __init__(self, location, tb):
:
for image, callbackname in tb:
self.button(PhotoImage(file = image))
Button(self.toolbar, image = self.button, command = callbackname).grid(row = 0, column = self.bcolumn)
Die eigentlichen Programm-Funktionen sind Methoden der Klasse Application. In der Klasse Toolbar gibt es eine Liste (tb) die die Icons für die Button und die dahinterliegende Funktion enthält. Ich kann machen, was ich will. Wenn ich in ToolBar eine Instanz der Klasse Application erzeuge und dann den Methoden-Aufruf im Klartext in Button(...) eintrage, funktioniert es, wenn ich den Methoden-Aufruf programmtechnisch erzeuge (Instanz der Klasse + Methodenaufruf aus der Liste) dann funzt es nicht (Fehlermeldung: Instanz der Klasse Application hat keine Methode ... - HAT SIE ABER DOCH ???).
Hat vielleicht jemand eine Idee, was ich falsch mache?