避免Tkinter OptionMenu按钮调整大小

6

我有一个下拉菜单:

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 提前感谢。
3个回答

7

通过 config(width=期望的宽度) 指定宽度:

menu2.config(width=20)

3

一个解决方案是通过指定 width 属性来给小部件确定一个特定的大小:

menu2.configure(width=20)

另一种解决方案是让小部件“粘”在其容器的两侧:
menu2.grid(row=n, column=5, ipadx=10, sticky="ew")

使用第二个选项,小部件仍然可能会调整大小,但它们受其所在列的大小限制。如果一个小部件调整大小,所有小部件都会调整大小,确保它们始终具有统一的大小。

3
grid方法中指定sticky属性,以便它知道需要多宽:
button.grid(sticky="WE")

相比在grid方法中指定固定的width,这种方法更好,因为它意味着小部件始终会跨越整个列的长度。

sticky是一个关键字,用于指定小部件粘附的位置。如果你设置sticky='W',那么小部件将粘附在列的左侧。如果设置为EW,则它将粘附在左右两侧,并自动拉伸到与整个列相同的长度。注意:指定方向时应该按照North South East West的顺序


1
一种更好的方法是什么?记住,答案可能不会按照您看到它们的顺序显示,因此,如果您参考其他答案,则需要更具体地说明。 - Bryan Oakley

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接