exaktes ausrichten verschiedener Widgets mit grid

Fragen zu Tkinter.
Antworten
AntagonisT
User
Beiträge: 42
Registriert: Samstag 11. Juli 2009, 16:36

Hallo,

ich wieder mal...

ist es möglich, mit dem Grid Gemoetry Manager die child-widgets genauer auszurichten?

Mein Problem:

Bild

(vor dem epileptischen Anfall: mit escape kann man das anhalten)

Im letzten Labelframe bekomme ich das einfach nicht hin, die Größe exakt anzupassen, da normale Entrys und Spinboxen wohl leicht unterschiedliche Größen haben, auch wenn ich die mit ["width"] = "..." bzw. padx=..., pady=... versuche, festzulegen. Im Beispiel hier verschiebt sich das letzte LabelFrame nur um 1 Pixel und so genau kann ich das nicht korrigieren. Beim Frame oben links war es wohl nur Zufall, daß die Größe genau gleich bleibt...

Hier der passende Code: http://paste.pocoo.org/show/133032/

Ich habe versucht, mit column_configure bzw. row_configure und mit grid_propagate herumzuspielen, hat aber prinzipiell nichts an meinem Problem geändert.

Muss ich meine Labelframes jetzt statisch auf eine genaue Größe festlegen?

Am schönsten wäre natürlich, wenn ich alle LabelFrames mit "fill" oder "expand" immer an das größte in der jeweiligen Reihe/Spalte aufblasen könnte.

Oder ganz anders? Ich hab schon länger mit rumgemacht und bin langsam ratlos...

Zum sonstigen Aufbau gerne auch Kritik, vorallem wie man so eine Menge unterschiedlicher Widgets am besten im Code sortiert: Nach Art, nach parent... ?

Merci!
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Ich verstehe jetzt nicht, was dich an der Optik des Beispiels stört.
AntagonisT
User
Beiträge: 42
Registriert: Samstag 11. Juli 2009, 16:36

das letzte Frame unten rechts springt immer einen Pixel nach links und rechts, und zwar bei jedem Umschalten der Radiobuttons bzw. von Entry auf Spinbox.
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

AntagonisT hat geschrieben:das letzte Frame unten rechts springt immer einen Pixel nach links und rechts, und zwar bei jedem Umschalten der Radiobuttons bzw. von Entry auf Spinbox.
Aaaah, jetzt sehe ich es.

Auf die Schnelle fällt mir da keine Lösungsidee ein (und den grid()-Manager mag ich sowieso nicht ..).

Die Idee mit der fixen Breite ist aber gewiss keine gute Idee. Je nachdem, in welcher Umgebung das Programm läuft, hat die verwendete Schrift nicht immer die gleiche Größe und das kann dann zu einer Darstellung führen, bei der das Ergebnis erheblich unansehnlicher ist als dein Pixelsprung.
Benutzeravatar
kaytec
User
Beiträge: 608
Registriert: Dienstag 13. Februar 2007, 21:57

Hallo AntagonisT !
Die Ausweitung des Frames könntest du immer mit maximaler Ausdehnung versuchen.

Code: Alles auswählen

self.lf5 = tkinter.LabelFrame(self.f0, text="Koordinatenursprung")
self.lf5.grid(row=1, column=3, padx=2, pady=2, sticky="nesw")
Gruß Frank
AntagonisT
User
Beiträge: 42
Registriert: Samstag 11. Juli 2009, 16:36

kaytec hat geschrieben:Hallo AntagonisT !
Die Ausweitung des Frames könntest du immer mit maximaler Ausdehnung versuchen.

Code: Alles auswählen

self.lf5 = tkinter.LabelFrame(self.f0, text="Koordinatenursprung")
self.lf5.grid(row=1, column=3, padx=2, pady=2, sticky="nesw")
Gruß Frank
Genau das ist es! Und dann noch so einfach umzusetzen, Dankeschön! :o
Antworten