我有一个像这样的Tkinter选项菜单:
import Tkinter as tk
choices = [1,2,3]
GUI = tk.Tk()
var2set = tk.IntVar(GUI)
tk.OptionMenu(GUI, var2set, *choices).grid(column=0, row=0)
GUI.mainloop()
是否可以将选项[1,2,3]
的标签更改为"title 1", "title 2", "title 3"
字符串 对变量choices
进行修改?重要的是,选项菜单中的每个选项都会从选项列表中提供所选的整数值。
答案 0 :(得分:0)
如果我完全明白你的要求那么
是的,我认为词典可以在这里使用,但正如你所说,你希望choices
的内容不被打扰,那么你会发现这很有用..
import Tkinter as tk
def select():
title=var.get()
print "selected string :"+title
print "corresponing integer value :"+str(choices[Dic[title]])
choices = [1,2,3]
Dic={'title 1':0,'title 2':1,'title 3':2}
GUI = tk.Tk()
var = tk.StringVar(GUI)
var.set('title 1')
op=tk.OptionMenu(GUI, var, *Dic.keys())
op.pack(side='left',padx=20,pady=10)
bt=tk.Button(GUI,text='check value',command=select)
bt.pack(side='left',padx=20,pady=10)
GUI.mainloop()
索引非常混乱,但可能正是你想要的方式
你也可以使用琐碎的循环来制作任何长度的字典(与choices
相同):)