2013-08-05 10 views
5

Ich habe folgendes OptionMenu:Vermeiden von Tkinter OptionMenu Schaltfläche Ändern der Größe

self.textoprioridad = Label(self.frameTwo, text = "Prioridad: ", justify="center") 
self.textoprioridad.grid(row=n, column=4) 
var2 = StringVar() 
menu2 = OptionMenu(self.frameTwo, var2, "Primera pieza", "Esta semana", "Normal", "Baja") 
menu2.grid(row=n, column=5, ipadx=10) 
var2.set("Primera pieza") 
self.optionmenus_prioridad.append((menu2, var2)) 

dass so etwas wie dies zeigt:

enter image description here

Die Sache ist die, dass, wenn ich wählen Normal aus der Liste, die Button verkleinert und verkleinert: enter image description here

Ich würde gerne wissen, ob es ist eine Möglichkeit, die OptionMenu Taste mit dem Anfangsgröße zu halten, wie folgt aus: enter image description here

Vielen Dank im Voraus.

Antwort

6

angeben Breite von config(width=desired-width):

menu2.config(width=20) 
3

Eine Lösung ist das Widget eine bestimmte Größe zu geben, indem die width Attribut spezifiziert:

menu2.configure(width=20) 

Eine andere Lösung ist es, die widgets haben "Stick" Die Seiten ihres Containers:

menu2.grid(row=n, column=5, ipadx=10, sticky="ew") 

Verwenden Sie die secon Wenn Sie die Option d ändern, können die Widgets zwar immer noch die Größe ändern, sie sind jedoch durch die Größe der Spalte eingeschränkt, in der sie sich befinden. Wenn Sie die Größe ändern, werden alle Größenänderungen vorgenommen.

3

eine sticky im grid Methode angeben, so dass sie, wie weit auf die Bedürfnisse kennt sein:

button.grid(sticky="WE") 

Diese Methode ist besser als eine Reihe width im grid Methode angeben becuase es bedeutet, dass das Widget wird immer Überspannen Sie die Länge der Spalte.

sticky ist ein Schlüssel, der zeigt, wo das Widget auch haften wird. Wenn Sie sticky='W' sagen, bleibt das Widget auf der linken Seite der Spalte. Wenn Sie EW machen, bleibt es links und rechts und dehnt sich so auf die Länge der Säule aus. HINWEIS: Es ist North South East West

+0

Ein viel besserer Weg ... * was dann? * Denken Sie daran, Antworten möglicherweise nicht in der Reihenfolge angezeigt, dass Sie sie sehen, also wenn Sie auf eine andere Antwort beziehen, Sie müssen genauer sein. –

Verwandte Themen