2016-08-08 44 views
0

Ich versuche, einen Login-Stil-Bildschirm zu machen und den Rahmen hinter erhaben, wenn das Passwort übereinstimmt Ich bekomme den Fehler AttributeError: 'str' object has no attribute 'get', wenn ich mein Programm ausführen:AttributError: 'str' Objekt hat kein Attribut 'Get' Fehler in Code

class StartPage(tk.Frame): 
    entry = "placeholder" 
    def framechange(self): 
     if self.entry.get() == "password": 
      command = lambda: controller.show_frame("PageOne") 
    def __init__(self, parent, controller): 
     tk.Frame.__init__(self, parent) 
     self.controller = controller 
     label = tk.Label(self, text="Welcome", font=TITLE_FONT) 
     label.pack(side="top", fill="x", pady=10) 
     entry = tk.Entry(self, show="•") 
     entry.pack(side="top", fill="x", pady=10, padx=10) 
     button1 = tk.Button(self, text="Login",command = self.framechange) 
     button1.pack() 

Vielen dank

Antwort

0

Es gibt keine get() aus dem Inneren der Klasse namens Anfragen. Auch Sie sind ein self in Ihrer Eingabe-Anweisung fehlen:

Versuchen:

class StartPage(tk.Frame): 
    entry = "placeholder" 
    def framechange(self): 
     if self.entry == "password": # Changed 
      command = lambda: controller.show_frame("PageOne") 
    def __init__(self, parent, controller): 
     tk.Frame.__init__(self, parent) 
     self.controller = controller 
     label = tk.Label(self, text="Welcome", font=TITLE_FONT) 
     label.pack(side="top", fill="x", pady=10) 
     self.entry = tk.Entry(self, show="•") # Changed 
     self.entry.pack(side="top", fill="x", pady=10, padx=10) # Changed 
     button1 = tk.Button(self, text="Login",command = self.framechange) 
     button1.pack() 
+0

Es ist nicht etwas zu tun, wenn die Login-Taste gedrückt wird, ich denke, das liegt daran, es gibt nichts, Informationen aus dem Eingabefeld für die Aufnahme Befehl in der Taste 1 – BadUserName

+0

@ user217591 Wusste nicht, dass Sie 'self' vergaßen. –