一个 ttk optionmenu 小部件从下拉列表中的所有值开始。选择任何值后,列表中的第一个值就会消失,再也不会出现...
有人知道为什么吗?这是小部件设计的一个特点吗?尝试以下操作:
import tkinter.ttk as ttk
import tkinter as tk
a = tk.Tk()
options = ['1', '2', '3']
value = tk.StringVar()
masterframe = ttk.Frame()
masterframe.pack()
dropdown = ttk.OptionMenu(masterframe, value, *options)
dropdown.pack()
a.mainloop()
注意 - 另一个用户在这里问了同样的问题:OptionMenu won't show the first option when clicked (Tkinter)
他们似乎找到了解决方法,但不明白为什么会这样。
更新:实际上此行为仅在使用 ttk 小部件时出现。 tk 小部件工作正常(尽管看起来很丑)。
最佳答案
ttk.OptionMenu 命令的签名是这样的:
def __init__(self, master, variable, default=None, *values, **kwargs):
这是文档字符串:
"""Construct a themed OptionMenu widget with master as the parent, the resource textvariable set to variable, the initially selected value specified by the default parameter, the menu values given by *values and additional keywords.
请注意值列表之前的 default
选项。不要向值列表中添加空白项,而是添加您想要的任何值作为默认值:
options = ['1', '2', '3']
dropdown = ttk.OptionMenu(masterframe, value, options[1], *options)
关于python - tkinter optionmenu 第一个选项消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19138534/