python - tkinter optionmenu 第一个选项消失

标签 python tkinter ttk 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.

请注意值列表之前的 default 选项。不要向值列表中添加空白项,而是添加您想要的任何值作为默认值:

options = ['1', '2', '3']
dropdown = ttk.OptionMenu(masterframe, value, options[1], *options)

关于python - tkinter optionmenu 第一个选项消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19138534/

相关文章:

python - 如何计算pandas中行值大于特定值的金额?

python - matplotlib阶跃函数中的线型

Python tkinter 小部件在更改时调整大小

python - 在 Python ttk 中打印字典

combobox - 如何将值更新到 ttk Python33 中 Combobox 下的列表框

python - 使用 win32com 打开带有公式的 Excel 文件,添加一些延迟,然后另存为 CSV

python - RegEx 将文本字符串拆分为 dict 作为组

python - 限制 tk 小部件上的条目

python - 如何以编程方式更改 Tkinter 标签的颜色?

python - Entry.place(X,Y) 不起作用