2017-06-21 6 views
-1

Ich habe zwei String-Variablen, die ich für den gleichen Callback verfolgen möchten diese Variablen sind für zwei Drop-Menü.Variable Trace-Methode Fehler bei der Verwendung von Tkinter

Das Problem tritt auf, wenn ich beide Variablen auf die gleiche Funktion verfolgen. Ich habe Attribute, hier ist ein Beispiel für den Fehler

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() 

Antwort

1

Zu der Zeit Sie Spur zu selctdModm hinzugefügt, gibt es keine self.selctdHandler erstellt damit Sie AttributeError erhalten.

Verschieben self.selctdModm.trace('w', self.start) irgendwo nach self.selctdHandler Initialisierung.

Verwandte Themen