python – tkinter optionmenu第一个选项消失了
作者:互联网
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.
请注意值列表之前的默认选项.不是将空白项添加到值列表中,而是添加您想要的任何值作为默认值:
options = ['1', '2', '3']
dropdown = ttk.OptionMenu(masterframe, value, options[1], *options)
标签:optionmenu,python,tkinter,ttk 来源: https://codeday.me/bug/20191004/1852708.html