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?
Welchen Geometry Manager?
Place geht gar nicht! Vergiss, dass es place gibt.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?
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.
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...
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...
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
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
http://www.ferg.org/thinking_in_tkinter ... grams.htmlapi 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://infohost.nmt.edu/tcc/help/pubs/tkinter/
http://effbot.org/tkinterbook/
Ich bin auf diesen Strang gestoßen, und habe nur eine kleine Frage.
Es beinhaltet relx, rely, relheight und relwidth. Nach sowas sehne ich mich in Pascal.
Was ist der Nachteil an place?numerix hat geschrieben:Place geht gar nicht! Vergiss, dass es place gibt.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?
Es beinhaltet relx, rely, relheight und relwidth. Nach sowas sehne ich mich in Pascal.
War ja klar, dass zu Halloween mindest ein Zombie auferstehtAries hat geschrieben:Was ist der Nachteil an place?
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.
Das Leben ist wie ein Tennisball.
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?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.
@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.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.