Seite 1 von 1

Tk Menu App. Prototyp...

Verfasst: Mittwoch 17. Dezember 2008, 17:33
von jens
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

Re: Tk Menu App. Prototyp...

Verfasst: Mittwoch 17. Dezember 2008, 17:59
von numerix
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.

Re: Tk Menu App. Prototyp...

Verfasst: Mittwoch 17. Dezember 2008, 19:21
von Leonidas
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.

Re: Tk Menu App. Prototyp...

Verfasst: Mittwoch 17. Dezember 2008, 19:59
von jens
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?

Re: Tk Menu App. Prototyp...

Verfasst: Mittwoch 17. Dezember 2008, 20:16
von numerix
jens hat geschrieben:Kannst du den Thread raussuchen? Gibt es schon code dafür irgendwo?
Der Thread. Der Code.

Verfasst: Donnerstag 18. Dezember 2008, 02:34
von 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