Tk Menu App. Prototyp...

Fragen zu Tkinter.
Antworten
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Ich hab mal im Wiki diese Seite erstellt: [wiki]Tkinter/Menu Prototyp[/wiki] und möchte den Code zur Diskussion stellen.

Die Frage ist, ob das so eine guter Startpunkt für eine Applikation ist. Verbesserungsvorschläge?

Zwei Punkte habe ich da konkret:
1. Sollte root = tk.Tk() und root.mainloop() lieber außerhalb der Klasse gemacht werden? Vielleicht in einer def main()?
2. Wie Tkconstants importieren? Ich hab es jetzt normal gemacht und z.B. Tkconstants.END gemacht. Wie handhabt ihr das?

@abgdf: Ich denke das ist einfacher als: http://www.angelfire.com/linux/tux25/py ... er.html#13

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

jens hat geschrieben:Die Frage ist, ob das so eine guter Startpunkt für eine Applikation ist.
Im Prinzip ja, wenn man mit dieser Funktionalität zufrieden ist. Schön wäre die Ergänzung von Shortcuts, die in den Menüeinträgen erscheinen. Besonders schön wäre es, wenn man daraus ein aufgebohrtes Menu-Widget machten würde, das man bei der Initialisierung z.B. mit einem Dictionary füttert, das alle relevanten Daten enthält und fertig ist das Menü.

Es gab vor einigen Monaten mal ein Thread dazu. Damals ging es mir darum, wie man es anstellen kann, dass die Shortcut-Angaben in den Menüeinträgen rechtsbündig dargestellt werden, wenn man eine proportionale Schrift verwendet. Damals hatte ich entsprechenden Code gepostet - dürfte schnell zu finden sein.
jens hat geschrieben:Zwei Punkte habe ich da konkret:
1. Sollte root = tk.Tk() und root.mainloop() lieber außerhalb der Klasse gemacht werden? Vielleicht in einer def main()?
2. Wie Tkconstants importieren? Ich hab es jetzt normal gemacht und z.B. Tkconstants.END gemacht. Wie handhabt ihr das?
ad 1.: Das überlege ich mir auch alle Nase lang wieder auf's Neue ...
Meist mache ich es so, dass es ich bei kleineren Sachen (ein paar dutzend Zeilen Code) außerhalb der Klasse mache, bei größeren Sachen in der Klasse. Einen wirklichen Grund dafür gibt es aber, glaube ich, nicht.

ad 2.: Ich importiere Tkconstants gar nicht, weil die Konstanten automatisch beim Import von Tkinter mit dabei sind. Also z.B. dann tk.END. Es gibt ja auch noch die Zeichenkettenvariante "end"; das ist zwar weniger zu tippen, sieht aber irgendwie nicht so nach Konstante aus, weshalb ich es in der Regel nicht so mache.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

jens hat geschrieben:Die Frage ist, ob das so eine guter Startpunkt für eine Applikation ist. Verbesserungsvorschläge?
Also erstmal fällt mir auf dass im Namen der Seite ein Bindestrich zu wenig ist: sollte ja eigentlich Menü-Applikation heißen.

Zweitens finde ich diese freistehenden runden Klammern ziemlich störend, erinnern negativ an Java-Code. Würde man in Python eher nicht so machen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

numerix hat geschrieben:Schön wäre die Ergänzung von Shortcuts, die in den Menüeinträgen erscheinen. Besonders schön wäre es, wenn man daraus ein aufgebohrtes Menu-Widget machten würde, das man bei der Initialisierung z.B. mit einem Dictionary füttert, das alle relevanten Daten enthält und fertig ist das Menü.
Das ist eine hervorragende Idee. Mach ja Sinn und spart viel code. Kannst du den Thread raussuchen? Gibt es schon code dafür irgendwo?

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

jens hat geschrieben:Kannst du den Thread raussuchen? Gibt es schon code dafür irgendwo?
Der Thread. Der Code.
abgdf

@abgdf: Ich denke das ist einfacher als:
Ich denke umgekehrt, daß das Beispiel im Wiki von jemandem aus meinem Posting in

http://www.python-forum.de/topic-16895.html

übernommen und leicht angepaßt wurde. Sieht mir doch sehr nach meinem Code aus, den ich von

http://wiki.perl-community.de/bin/view/ ... lKapitel13

abgeleitet hatte.

Ist ja auch ok so :wink:.

Aber schön, daß Du schon so fleißig auf meiner Seite gelesen hast :P.

Viele Grüße
Antworten