gpt4 book ai didi

python - 在 tkinter 中使用选项菜单小部件时出错

转载 作者:太空宇宙 更新时间:2023-11-04 04:59:08 25 4
gpt4 key购买 nike

我在 python 2.7 中编写了一个实现“optionmenu”小部件的代码。我面临一个问题,我在元组中给出了六个值,但是当我选择另一个选项而不是“Gmail”时,我在下拉列表中只看到五个值。谁能告诉我我的错误?

from Tkinter import *
import ttk

root = Tk()

choices = ("Gmail", "Outlook/Hotmail", "Yahoo", "Comcast", "AT&T", "Verizon")
dropdown_var = StringVar()
dropdown_var.set(choices[0]) # set default value

def data(*args):
value = dropdown_var.get()
print(value)

l = ttk.Label(root, text="Select your e-mail provider : ")
l.pack(side="left")

option = ttk.OptionMenu(root, dropdown_var, *choices)
option.pack(side="left", padx=10, pady=10)

b = ttk.Button(root, text="Click", command=data)
b.pack(side="bottom")

root.mainloop()

最佳答案

您遇到的问题与您定义 OptionMenu 小部件的方式有关。

事实上,它与 tkinter OptionMenu 不同,因为您在声明中设置了默认值。因此,当您解压缩这些值时,第一个索引 "Gmail" 被视为小部件的 default 参数,其他是选项值。

(另外,之前不需要设置dropdown_var)

试试这个版本:

choices = ("Gmail", "Outlook/Hotmail", "Yahoo", "Comcast", "AT&T", "Verizon")
dropdown_var = StringVar()

def data(*args):
value = dropdown_var.get()
print value # no bracket for python2

l = ttk.Label(root, text="Select your e-mail provider : ")
l.pack(side="left")

# the 3rd parameter is the default value
option = ttk.OptionMenu(root, dropdown_var, choices[0], *choices)
option.pack(side="left", padx=10, pady=10)

关于python - 在 tkinter 中使用选项菜单小部件时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46284619/

25 4 0