2013-08-05 91 views
5

我有以下OptionMenu:避免Tkinter的OptionMenu按鈕調整

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)) 

這說明是這樣的:

enter image description here

的事情是,如果我選擇Normal從列表中,按鈕調整大小,它使更小: enter image description here

我想知道是否它是任何方式來保持OptionMenu按鈕的初始大小,如下所示: enter image description here

在此先感謝。

回答

6

通過config(width=desired-width)指定寬度:

menu2.config(width=20) 
3

一種解決方案是通過指定width屬性,得到小窗口的特定尺寸:

menu2.configure(width=20) 

另一個解決方案是具有窗口小部件「粘」到其容器的側面:

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

使用secon d選項時,小部件仍然可以調整大小,但是它們受到它們所在列的大小的限制。如果調整大小,它們都會調整大小,以確保它們始終大小一致。

3

grid方法指定sticky以便它知道有多寬,以需求爲:

button.grid(sticky="WE") 

這種方法比grid方法指定一組width更好,原因是其意味着部件將始終跨越列的長度。

sticky是顯示小部件粘貼位置的關鍵。如果你說sticky='W'比小部件將粘在列的左側。通過製作是EW它會堅持到左側和右側,因此將它自己拉長到列的長度。 注意:它是北東南西

+0

更好的方法... *然後是什麼?*請記住,答案可能不會按照您看到的順序顯示,所以如果您指的是其他答案,你需要更具體。 –