Tkinter OptionMenu 显示选项和分配值

8
在Python的Tkinter OptionMenu中,是否可以拥有一个显示选项列表,但在选择时将其设置为其他值?例如,如果我有以下内容:
variable = tk.IntVar(master)
OptionMenu(master, variable, 1, 2).pack()
options = {1:"one",2:"two"}

我想展示数值,但将键分配给变量。这是否可能?或者是否有一种方法将OptionMenu链接到调用选择函数以进行转换的方式?

我的实际问题比例子更复杂,所以问题仅在于评估复杂字符串,我想避免使用StringVar。

谢谢。

1个回答

10
你已经拥有它。使用字典将显示选项映射到您想要的实际值。
例如:
import Tkinter as tk
master = tk.Tk()
variable = tk.StringVar(master)
options = {"one": 1, "two": 2}
tk.OptionMenu(master, variable, *options.keys()).pack()
...
wanted = options[variable.get()]

请注意splat操作符,*,它用于将键解包为逗号分隔的参数列表,传递给OptionMenu。稍后当您想要选项的“值”时,请使用variable.get()作为字典中的“键”。

我很喜欢选项菜单能够像这样链接到字典的功能。太棒了,谢谢。 - Murphy4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接