2014-12-20 72 views
2

在Python的Tkinter OptionMenu中,是否有可能具有顯示選項列表,但在選擇時,它將值設置爲某個其他值?Tkinter OptionMenu DisplayOptions和Assignment值

假設我有

variable = tk.IntVar(master) 
OptionMenu(master, variable, 1, 2).pack() 
options = {1:"one",2:"two"} 

,並希望以顯示值,但分配的關鍵變量。這甚至有可能嗎?或者有沒有辦法鏈接OptionMenu來調用選擇的函數來轉換它?

我的真正問題比例子涉及更多,所以問題只是評估複雜的字符串,我想避免使用StringVar。

謝謝

回答

4

你已經擁有它。使用字典將您顯示的選項映射到您想要的實際值。

EG:

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 operator, *,用來解開密鑰爲逗號分隔的參數列表OptionMenu。稍後當您想要選項的「值」時,請使用variable.get()作爲詞典中的「鍵」。

+0

我錯過了選項菜單鏈接到這樣的字典的能力。這很棒。謝謝。 – Murphy4