2013-11-15 75 views
2

我有这样一个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"WITHOUT变量choices的修改?重要的是,选项菜单中的每个选项都会从选项列表中提供所选的整数值。

+1

我不知道你想在这里做什么。如果你只是想让它显示类似'标题1'而不是数字,只需进行更改即可。然后你可以让python做任何你想要的东西,当用户选择。无所谓的标题是什么... – Benjooster

回答

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)使用琐碎循环,即太明显:)它

+0

我期望从下来选民的原因plz – adil

+0

主要是这正是我期待的方式。它使选项菜单看起来像我想要的。但问题是,var2set.get()给我的字典中的字符串值,而不是相关的整数。有没有解决方法? – MoTSCHIGGE

+0

我已经编辑了答案,可能这是你需要的 – adil