Seite 1 von 1
Welchen Geometry Manager?
Verfasst: Freitag 6. November 2009, 11:06
von api
Hallo zusammen,
ich möchte gerne mit Tkinter eine GUI programmieren. Bevor ich anfange, muss ich mich aber wohl für einen Geometry Manager entscheiden. Nun gibt es IMO Grid, Pack & Place.
Welcher von diesen ist denn nun der beste? Ich nehme an, dass alle 3 ihre Vorzüge haben - aber gibt es einen kurzen und knappen Leitfaden, der beschreibt, was geht bzw. was geht nicht?
Re: Welchen Geometry Manager?
Verfasst: Freitag 6. November 2009, 12:43
von numerix
api hat geschrieben:
ich möchte gerne mit Tkinter eine GUI programmieren. Bevor ich anfange, muss ich mich aber wohl für einen Geometry Manager entscheiden. Nun gibt es IMO Grid, Pack & Place.
Welcher von diesen ist denn nun der beste? Ich nehme an, dass alle 3 ihre Vorzüge haben - aber gibt es einen kurzen und knappen Leitfaden, der beschreibt, was geht bzw. was geht nicht?
Place geht gar nicht! Vergiss, dass es place gibt.
Was grid und pack angeht, so dürfte das im wesentlichen Geschmackssache sein. Es gibt Dinge, die mit grid besser (d.h. klarer, stringenter) machbar sind, und andere, wo pack günstiger ist. Grundsätzlich lässt sich aber ein und dieselbe Sache in der Regel mit beiden realisieren.
Ich benutze praktisch nur noch den pack-Manager. Wenn man sich daran gewöhnt hat, in entsprechenden Strukturen zu denken und einen großen Teil der möglichen Optionen im Kopf hat, dann lässt sich damit relativ schnell und flüssig eine GUI aufbauen. Nach meiner Einschätzung wird der grid-Manager insgesamt weniger eingesetzt.
Verfasst: Freitag 6. November 2009, 12:56
von api
Hallo numerix,
das ist doch mal eine klare Aussage. Dann werd ich mich wohl mal mit pack beschäftigen. Danke dir schonmal.
Hast du eigentlich eine bevorzugte Doku-Seite, wo man sich am besten in das Thema einarbeitet? Gut wären auch Beispiel-Scripte, um sich mit der Struktur bekanntzumachen...
Verfasst: Freitag 6. November 2009, 13:13
von yipyip
Es gibt nicht *den* besten Geometrie Manager, sonder nur die Frage:
Ist fuer das Problem 'pack' oder 'grid' sinnvoller?
Man kann beide Manager auch indirekt mischen, indem man z.B. ein Frame mit 'pack' packt und innerhalb dieses Frames mit 'grid' arbeitet.
Auf alle Faelle solltest Du Dir *beide* Manager anschauen.
Beispiele?
Am besten hier die vielen Demos durcharbeiten.
yipyip
Verfasst: Freitag 6. November 2009, 14:13
von numerix
api hat geschrieben:Hast du eigentlich eine bevorzugte Doku-Seite, wo man sich am besten in das Thema einarbeitet? Gut wären auch Beispiel-Scripte, um sich mit der Struktur bekanntzumachen...
http://www.ferg.org/thinking_in_tkinter ... grams.html
http://infohost.nmt.edu/tcc/help/pubs/tkinter/
http://effbot.org/tkinterbook/
Verfasst: Freitag 6. November 2009, 17:03
von api
Danke euch.
Ich werd mir mal die Links ansehen...
Re: Welchen Geometry Manager?
Verfasst: Donnerstag 31. Oktober 2013, 16:52
von Aries
Ich bin auf diesen Strang gestoßen, und habe nur eine kleine Frage.
numerix hat geschrieben:api hat geschrieben:
ich möchte gerne mit Tkinter eine GUI programmieren. Bevor ich anfange, muss ich mich aber wohl für einen Geometry Manager entscheiden. Nun gibt es IMO Grid, Pack & Place.
Welcher von diesen ist denn nun der beste? Ich nehme an, dass alle 3 ihre Vorzüge haben - aber gibt es einen kurzen und knappen Leitfaden, der beschreibt, was geht bzw. was geht nicht?
Place geht gar nicht! Vergiss, dass es place gibt.
Was ist der Nachteil an place?
Es beinhaltet relx, rely, relheight und relwidth. Nach sowas sehne ich mich in Pascal.
Re: Welchen Geometry Manager?
Verfasst: Donnerstag 31. Oktober 2013, 17:07
von EyDu
Aries hat geschrieben:Was ist der Nachteil an place?
War ja klar, dass zu Halloween mindest ein Zombie aufersteht
Wenn du eine GUI mit place entwirfst, dann wird es nur auf einem System vernünftig aussehen. Und zwar nur auf dem die GUI entwickelt wurde. Auf fast allen anderen Systemen werden sich Steuerelemente überlappen, Schriften ineinander laufen und Elemente unbenutzbar. Alternativ entstehen "hübsche" Lücken zwischen den Widgets. Und das nur, weil sich die Schriftgröße unterscheidet. Von verschiedenen Auflösungen, Schriftarten und Fenster-/Widgetstyles ganz zu schweigen.
Re: Welchen Geometry Manager?
Verfasst: Donnerstag 31. Oktober 2013, 17:28
von BlackJack
Ergänzend zu EyDu's Ausführungen: Eine solche GUI die nicht supertrivial ist, macht auch viel zu viel arbeit wenn man etwas an der Oberfläche verändern möchte. Also zum Beispiel irgendwo ein Widget einfügen wozu man dann viele andere verschieben muss.
Re: Welchen Geometry Manager?
Verfasst: Donnerstag 31. Oktober 2013, 19:56
von Aries
BlackJack hat geschrieben:Ergänzend zu EyDu's Ausführungen: Eine solche GUI die nicht supertrivial ist, macht auch viel zu viel arbeit wenn man etwas an der Oberfläche verändern möchte. Also zum Beispiel irgendwo ein Widget einfügen wozu man dann viele andere verschieben muss.
Das Problem scheint bei grid besser gelöst zu sein. Jedoch finde ich bei grid keine Möglichkeit, die Breite mehrerer Buttons zu vereinheitlichen und in Relation zur Fensterbreite zu setzen. Gibt es da eine Möglichkeit?
Re: Welchen Geometry Manager?
Verfasst: Donnerstag 31. Oktober 2013, 21:36
von BlackJack
@Aries: Man kann auf dem enthaltenen Widget mit `columnconfigure()` das Gewicht bei der Breite der jeweiligen Spalte festlegen falls der Platz grösser ist als der Inhalt der Zellen in der Spalte benötigt. Die Breite wird dann einheitlich wenn mindestens so viel Platz zur Verfügung steht, dass das die breiteste Zelle in alle Spalten passen würde.
Re: Welchen Geometry Manager?
Verfasst: Freitag 1. November 2013, 11:33
von Aries
BlackJack hat geschrieben:@Aries: Man kann auf dem enthaltenen Widget mit `columnconfigure()` das Gewicht bei der Breite der jeweiligen Spalte festlegen falls der Platz grösser ist als der Inhalt der Zellen in der Spalte benötigt. Die Breite wird dann einheitlich wenn mindestens so viel Platz zur Verfügung steht, dass das die breiteste Zelle in alle Spalten passen würde.
Danke, erstmal. Ich blicke zwar noch nicht ganz durch, aber mit columnconfigure() und sticky kriege ich für den Moment ganz brauchbare Ergebnisse hin.