2017-06-21 63 views
-1

我有兩個字符串變量,我想跟蹤相同的回調,這些變量用於兩個下拉菜單。使用Tkinter時可變跟蹤方法錯誤

當我將兩個變量跟蹤到相同的函數時,會發生問題。我AttributeError的,這裏是錯誤

import Tkinter as tk 
import ttk 

class SampleApp(tk.Tk): 

    def __init__(self, *args, **kwargs): 
     tk.Tk.__init__(self, *args, **kwargs) 
     self.handlersList = ["handlr1", "handlr2", "handlr3"] 
     self.modemList = ["modem1","modem2","modem3"] 

     self.selctdModm = tk.StringVar(self) 
     self.selctdModm.set("Select a Modem") 
     self.defaultModem = "Select a Modem" 
     self.modemList.insert(0,self.defaultModem) 

     self.selctdModm.trace('w', self.start) 
     self.drop_Menu_Modems = ttk.OptionMenu(self, self.selctdModm, 
             self.modemList[0], 
             *self.modemList, 
             command= "") 
     self.drop_Menu_Modems.pack() 
     self.drop_Menu_Modems.config(width = 15) 




     self.selctdHandler = tk.StringVar(self) 
     self.selctdHandler.set("Select a Handler") 
     self.defaultHandlr = "Select a Handler" 
     self.handlersList.insert(0,self.defaultHandlr) 

     self.selctdHandler.trace('w', self.start)     
     self.drop_Menu_handlrs = ttk.OptionMenu(self, self.selctdHandler, 
               self.handlersList[0], 
               *self.handlersList, 
               command= "") 
     self.drop_Menu_handlrs.pack() 
     self.drop_Menu_handlrs.config(width = 15) 


    def start(self, *args): 

     handler = self.selctdHandler.get() 



app = SampleApp() 
app.mainloop() 

回答

1

在您添加跟蹤到selctdModm時的一個例子,有沒有這樣你可以獲得AttributeError創建self.selctdHandler

移動self.selctdModm.trace('w', self.start)self.selctdHandler初始化後的某處。