Programmier-Struktur bei tkinter?

Fragen zu Tkinter.
Antworten
Benutzeravatar
paitn
User
Beiträge: 16
Registriert: Montag 4. Juni 2018, 09:32

Hallo,

wie programmiert man eine tkinter Gui am besten?

Eigene Klasse, in eigener Datei?

Und wenn ich eine Klasse mache, wie strukturiere ich sie? Wo bringe ich übergeordneten Instanzen wie "root = Tk()" oder Frames unter? Mach ich solche Instanzen global? Ich weiß, globale Variablen, usw. sind ein Unding, aber vielleicht in diesem Fall angebracht?

Macht ich für alle Buttons eine Funktion?
Wie gliedert ihr die Gui-Elemente?

Grüße,
Michael

Wie macht ihr das?
Benutzeravatar
__blackjack__
User
Beiträge: 13291
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@paitn: Um eine Klasse wird man in der Regel nicht drum herum kommen. Eigenes Modul ist nicht zwingend. Da gelten nicht wirklich andere Richtlinien als bei nicht-GUI-Code.

Wo das `Tk`-Objekt untergebracht wird, kommt darauf an was die Klasse repräsentiert. Wenn man eine hat, die das Hauptfenster repräsentiert, dann erbt man einfach von `Tk`, denn das ist ja das Hauptfenster von `tkinter`.

Ob man das noch mal weiter in Klassen untergliedert, kommt darauf an, ob man Teile der GUI in eigene Klassen herausziehen möchte, weil man sie innerhalb der GUI wiederverwenden kann, und/oder die Klasse viel enthält was man sinnvoll aufteilen kann. Auch wieder nichts wirklich GUI-spezifisches.

Auch bei der Frage eine Methode pro Button: Wenn die sich unterscheiden ja, falls mehrere Buttons etwas machen was sich nur durch Parameter unterscheidet, bekommen die natürlich nur eine Methode, die dann den/die Parameter übergeben bekommt.

Den Code zum erstellen der GUI-Elemente würde ich so anordnen, dass die von oben nach unten und von rechts nach links erstellt werden, damit man sich da leichter zurecht findet.
Please call it what it is: copyright infringement, not piracy. Piracy takes place in international waters, and involves one or more of theft, murder, rape and kidnapping. Making an unauthorized copy of a piece of software is not piracy, it is an infringement of a government-granted monopoly.
Antworten