2013-11-15 4 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"БЕЗ модификации переменной 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

Смежные вопросы