Python 如何在Tkinter选项菜单中设置变量?

Python 如何在Tkinter选项菜单中设置变量?,python,tkinter,Python,Tkinter,因此,我的问题是为什么Tkinter选项菜单未设置为默认值4.5?我是否必须将4.5放在avgdisc\u thresh列表的开头,还是我做错了什么 avgdisc_thresh = [3.5, 4, 4.5, 5, 5.5, 6] avgdisc_var = tk.StringVar() avgdisc_var.set("4.5") loss_option = ttk.OptionMenu( loss_top_win, avgdisc_var, *avgdisc_thresh) l

因此,我的问题是为什么Tkinter
选项菜单未设置为默认值
4.5
?我是否必须将
4.5
放在
avgdisc\u thresh
列表的开头,还是我做错了什么

avgdisc_thresh = [3.5, 4, 4.5, 5, 5.5, 6]

avgdisc_var = tk.StringVar()
avgdisc_var.set("4.5")

loss_option = ttk.OptionMenu(
    loss_top_win, avgdisc_var, *avgdisc_thresh)
loss_option.grid(
    row=0, column=0)

谢谢

使用ttk
选项菜单
,变量名称后的第一个值将用作默认值,它将覆盖先前设置的任何值。简单的解决方案是在创建小部件时提供默认值

例如:

loss_option = ttk.OptionMenu(loss_top_win, avgdisc_var, "4.5", *avgdisc_thresh)

在第6行,ttk是打字错误吗?你是说tk.选项菜单…?不是。ttk有一些比tk更时尚的菜单等等。我在任何地方都用它啊。我懂了。他们不在一起工作。必须使用tk。。谢谢所以我要么使用
tk
要么更改参数的格式?我没有意识到
ttk
有一个单独的语法,我正在试图弄清楚他们为什么会这样做-设置一个变量,然后按默认值更改该变量似乎是多余的。也许你能帮我理解?@6seven8:不太可能。Tkinter
选项菜单
也将默认值作为第一个参数。在
Tkinter
中,它是一个位置参数,在ttk中,它是一个关键字参数。