MineSweeper: wie spreche ich Buttons im Grid an?

Fragen zu Tkinter.
Antworten
schlangenbeschwörer
User
Beiträge: 419
Registriert: Sonntag 3. September 2006, 15:11
Wohnort: in den weiten von NRW
Kontaktdaten:

Das mit dem "master" hast du jetzt etwsa durcheinander gebracht. Das bezog sich auf die Variante, in der du von tk.Frame geerbt hast. Da musst/solltest du der "tk.Frame.__init__" "master" als 2. Argument übergeben, wobei "master" dann eine tk.Frame oder tk.Tk Instanz sein muss (oder ein anderes geeignetes tk-Widget, wzB tk.Canvas). Da du jetzt aber eine eigene Klasse hast, die selbst ein tk.Tk-Fenster erzeugt, brauchst du das nicht. Ansonsten ist das aber eine Möglichkeit.
Nikolas
User
Beiträge: 102
Registriert: Dienstag 25. Dezember 2007, 22:53
Wohnort: Freiburg im Breisgau

Den "master"-Eintrag in der GUI Klasse nutze ich dazu, eine Schnittstelle zwischen Darstellung und Logik zu haben. Jetzt kann ich recht einfach den Buttons sagen, dass sie eine Funktion der Klasse oben drüber aufrufen sollen. Oder gibt es da einen einfacheren Weg, also hat eine Klasse immer schon die Information, von wem sie erschaffen wurde?
Erwarte das Beste und sei auf das Schlimmste vorbereitet.
schlangenbeschwörer
User
Beiträge: 419
Registriert: Sonntag 3. September 2006, 15:11
Wohnort: in den weiten von NRW
Kontaktdaten:

Achso, das ist extra so. Na dann ist's ok, ich dachte nur, weil's vorher auch um master und so ging.
Im Grunde ist es ok was du machst, meistens ist es aber einfacher, die GUI-Klasse oben zu haben, denn dort hast du Events, die du verarbeitest ect. Die Datengeschichten kannst du meist in Methoden packen, die du von der Graphik aufrufst. Und wenns nicht ganz so einfach ist, kannst du deine GUI von der Data-Class erben lassen. Dann hast du alles in einem und doch getrennt.
Nikolas
User
Beiträge: 102
Registriert: Dienstag 25. Dezember 2007, 22:53
Wohnort: Freiburg im Breisgau

Das mit der Vererbung von Logik zu Darstellung ist eine nette Idee, aber noch mal stelle ich jetzt nicht mehr um :)

Danke für deine Hilfe.
Erwarte das Beste und sei auf das Schlimmste vorbereitet.
Antworten