2014-08-27 35 views
0

我想從組合框中獲取選定的值,同時我必須將該值傳遞給其他調用函數,如何執行此操作?我寫的代碼不足以達到這個要求,有人請​​幫助我。我熟悉C#和其他語言中的SelectedIndexChanged!它是否與Tkinter python類似?如何獲取並從組合框中同時傳遞一個選定的值到功能

def fill_Combo(self): 
    combo1= ttk.Combobox(frame1,height=1, width=20) 
    combo1['values'] = ("AA","BB","CC","DD","EE") 
    combo1.current(0) 
    combo1.pack()     
    combo1.place(x=5, y = 75) 
    var_Selected=combo1.current() 
    combo1.bind("<<ComboboxSelected>>",select_Combo(var_Selected)) 


def select_Combo(self,var_Selected): 
    print "The user selected value now is:" 
    print var_Selected 

回答

0

眼下,var_Selected始終爲0,因爲在創建組合框,當設定的電流爲0,只需設置一次var_Selected這個值。你需要做的是在執行select_Combo時獲得combo1.current()。您可以通過將combo1重命名爲self.combo1來完成此操作,然後通過自我將其自動傳遞至select_Combo。然後你可以得到當前的價值,並用它做任何你想要的。 並且不要同時使用packplace,選擇一個。

例子:

from Tkinter import * 
import ttk 

class app(): 

    def __init__(self): 
     self.root = Tk() 
     self.fill_Combo() 
     self.root.mainloop() 

    def fill_Combo(self): 
     self.combo1= ttk.Combobox(self.root,height=1, width=20) 
     self.combo1['values'] = ("AA","BB","CC","DD","EE") 
     self.combo1.current(0)    
     self.combo1.place(x=5, y = 75) 
     self.combo1.bind("<<ComboboxSelected>>",self.select_Combo) 

    def select_Combo(self, event): 
     self.var_Selected = self.combo1.current() 
     print "The user selected value now is:" 
     print self.var_Selected 
     # Any other function you want to use as function(self.var_Selected) or a function that gets self 

app() 
+0

這是一個非常有用的答案,真的很感謝您,以及爲你的努力。 – 2014-08-27 12:44:01

相關問題