编程语言
首页 > 编程语言> > python – tkinter optionmenu第一个选项消失了

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