我已经从Tkinter创建了一个OptionMenu,其柱间距为2.但是,下拉列表/菜单与宽度不匹配,因此看起来不太好。关于如何匹配宽度的任何想法?
self.widgetVar = StringVar(self.top)
choices = ['', 'wire', 'register']
typeOption = OptionMenu(self.top, self.widgetVar, *choices)
typeOption.grid(column = 0, columnspan = 2, row = 0, sticky = 'NSWE', padx = 5, pady = 5)
答案 0 :(得分:2)
无法更改下拉列表的宽度。
您可能需要考虑ttk.Combobox小部件。它有不同的外观,可能是你正在寻找的。 p>
答案 1 :(得分:2)
执行下拉名称 .config(宽度= 宽度) 调整下拉框的大小非常有效。 我设法使其可以使用。
drop1.config(width = 20)
只是让您知道宽度20很长。
答案 2 :(得分:0)
一个想法是用空格填充右侧(或左侧或两侧)。然后,当您需要所选值时,请使用str
strip
删除它。不是很好,但总比没有好。
from tkinter import ttk
import tkinter as tk
root = tk.Tk()
def func(selected_item):
print(repr(selected_item.strip()))
max_len = 38
omvar = tk.StringVar()
choices = ['Default Choice', 'whoa', 'this is a bit longer'] + ['choice'+str(i) for i in range(3)]
padded_choices = [x+' '*(max_len-len(x)) for x in choices]
om = ttk.OptionMenu(root, omvar, 'Default Choice', *padded_choices, command=func)
om.config(width=30)
om.grid(row=0, column=0, padx=20, pady=20, sticky='nsew')
root.mainloop()
答案 3 :(得分:0)
我们可以通过以下方式更改下拉宽度:
typesOfSurgeries = ['Chemotherapy','Cataract']
listOfSurgeries = tkinter.OptionMenu(test_frame, variable, *typesofSurgeries)
listOfSurgeries.config(width=20)
listOfSurgeries.grid(row=14,column=1)
listOfSurgeries.config(width=20)
设置OptionMenu的宽度
答案 4 :(得分:0)
这个答案有点晚了,但是我想如果其他人正在寻找它,这是我的解决方案:
optionMenu1 = ttk.OptionMenu(btnPane, item_text, item_text.get(), "Choose item!\t\t\t\t\t\t\t\t",
*list1, *list2(), style='Custom.TMenubutton')
我在这里要做的是仅使用许多选项卡(\ t)设置默认值。原因是下拉菜单的所有项目都具有相同的宽度。最长项目的宽度。在这种情况下,其为默认值。现在,您可以在不剥离任何内容的情况下获得其他项目的价值。而且您的宽度已更改。
如果要测试它,您会看到多少标签(取决于OptionMenu的宽度)。
希望它对某人有帮助。
致谢
答案 5 :(得分:0)
只需使用config()
typeOption.config(width = 50)
答案 6 :(得分:-1)
这已经过时了,但希望答案仍然有用。
N S W E的粘性选项是tkinter包的一部分。所以他们不应该引用。尝试
typeOption.grid(column = 0, columnspan = 2, row = 0, sticky = N+S+W+E, padx = 5, pady = 5)
如果不是“来自tkinter import *”,那么更明显的是
import tkinter as tk
typeOption.grid(column = 0, columnspan = 2, row = 0, sticky = tk.N+tk.S+tk.W+tk.E, padx = 5, pady = 5)
然后通过在frame的columnconfigure函数中使用minsize来确保列不缩小。
**注意还有其他内置参数的参数组合,如NSEW但不是NSWE