Tkinter konfigurieren columnwidth
Ich habe schon die Doku und fand 3 praktikable Möglichkeiten innerhalb der columnconfigure:
- minsize
- pad
- Gewicht
Aber was, wenn Sie wollten, um die Spalte so klein wie möglich?
Ich habe 3 Kontrollkästchen ich möchte die line-up neben einander.
was ich gefunden habe arbeiten war:
weekly.grid(row = 2, column = 1, sticky = W)
monthly.grid(row = 2, column = 1, padx = 75, sticky = W)
yearly.grid(row = 2, column = 1, padx = 150, sticky = W)
Ist es nicht eine "schöne" Art und Weise, dies zu tun?
(könnte sein, lohnt sich, zu sagen, dass bei der Verwendung von Spalte 2 und 3 sind Sie getrennt viiiiel zu viel :-()
Beste Grüße,
Casper
InformationsquelleAutor Evilunclebill | 2012-12-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dem Standard-Verhalten der Verwendung der grid-geometrie-manager ist, dass die Spalten möglichst klein sein, so brauchen Sie nicht, etwas zu tun (vorausgesetzt, Sie sind mit raster richtig).
Das Verhalten, das Sie beschreiben, wo es ist zu viel Platz zwischen den Elementen ist wahrscheinlich aufgrund der Tatsache, Sie haben andere widgets in derselben Spalte, die breiter sind. Die Spalte wird standardmäßig auf die kleinste Breite, die Platz für das breiteste Element. Oder an anderer Stelle in Ihrem code, den Sie geben, einen nicht-null-Gewicht auf einige dieser Spalten, wodurch Sie zu erweitern.
Bevor ich sprechen über eine Lösung, lassen Sie mich stellen Sie sicher, es ist klar, dass die Art und Weise, die Sie verwenden Netz zu stellen mehr als ein widget in der gleichen Zelle ist definitiv der falsche Weg, es zu tun. Es gibt absolut keinen Grund zu greifen, um eine solche Lösung. Eine Allgemeine Faustregel ist, dass Sie sollten nie mehr als ein widget in einer Zelle.
Die einfachste Lösung für Sie ist die Kombination von grid und pack. Platzieren Sie alle Kontrollkästchen in einem Rahmen und pack Sie auf der linken Seite des Rahmens. Dann, setzen Sie den Rahmen in Ihr raster mit
sticky="w"
. Dann, egal wie groß das Fenster bekommt, das Kontrollkästchen immer fest an der linken Seite Ihres mit Rahmen.Beachten Sie, dass diese Lösung nicht zu brechen die Faustregel, die ich früher erwähnt. Sie sind nur putting ein widget in eine Zelle: der Rahmen. Sie können setzen, was Sie wollen, in diesem inneren Bild, sondern aus der Sicht des grid-es ist nur ein einzelnes widget in jede Zelle des Rasters.
Hier ist ein funktionierendes Beispiel auf Basis von python 2.7:
Natürlich, Sie können auch das Kontrollkästchen in getrennten Spalten-das ist oft am einfachsten-aber Sie müssen möglicherweise andere Elemente, die in anderen Zeilen über mehrere Spalten erstrecken und befassen sich mit Spalte gewichten. Da es nicht klar genau was dein problem ist, basierend auf Ihre Beschreibung, die oben genannte Lösung ist wahrscheinlich die einfachste für Sie.
Unter welchen Bedingungen ist es ok, zu kombinieren grid und pack? Nach effbot.org/tkinterbook/grid.htm, können Sie nie beenden, unter bestimmten Bedingungen.
die einzige Voraussetzung ist, dass Sie nicht verwenden können, grid und pack zusammen auf widgets, die haben die gleichen Eltern.
InformationsquelleAutor Bryan Oakley