2013-11-15 115 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