TclError: kann nicht aufrufen "zerstören" - Befehl: Anwendung zerstört wurde

Ich bin ein python Anfänger. Versuchen Sie, um eine neue Schaltfläche, um das Fenster zu schließen. Ich bekam die Fehlermeldung:

Exception in Tkinter callback
Traceback (most recent call last): File
"/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk/Tkinter.py",
line 1536, in nennen
return self.func(*args) File "tk_cp_successful.py", line 138, in buttonPushed
selbst.root.destroy() File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk/Tkinter.py",
Linie 1859, in zerstören
selbst.tk.call ("vernichten", selbst._w) TclError: kann nicht aufrufen "zerstören" - Befehl: Anwendung zerstört wurde

class LoginPage(tk.Frame):
   def __init__(self, parent, controller):
      self.controller = controller
      self.root = tk.Tk()
      global entry_1
      global entry_2
      tk.Frame.__init__(self, parent)
      label = tk.Label(self, text="Welcome to VISA Login Page",fg="blue")
      label.pack(pady=10,padx=10)

      label_1 = Label(self, text="Username")
      label_1.pack()
      label_2 = Label(self, text="Password")
      label_2.pack()
      entry_1 = Entry(self)
      entry_1.pack()
      entry_2 = Entry(self, show="*")
      entry_2.pack()
      label_1.grid(row=0, sticky=E)
      label_1.pack()
      label_2.grid(row=1, sticky=E)
      label_2.pack()
      entry_1.grid(row=0, column=1)
      entry_1.pack()
      entry_2.grid(row=1, column=1)
      entry_2.pack()
      checkbox = Checkbutton(self, text="Keep me logged in")

      checkbox.grid(columnspan=2)
      checkbox.pack()
      logbtn = Button(self, text="Login", command = self._login_btn_clickked)
      logbtn.grid(columnspan=2)
      logbtn.pack()
      myButton = Button(self, text="Exit",command = self.buttonPushed)
      myButton.pack()

  def buttonPushed(self):
      self.root.destroy()

  def _login_btn_clickked(self):
      #print("Clicked")
      username = entry_1.get()
      password = entry_2.get()

      #print(username, password)

      if username == "test" and password == "test":
          #box.showinfo("Login info", "Welcome Tester")
          button1 = ttk.Button(self, text="Please click, Welcome to login!!!",
                     command=lambda: self.controller.show_frame(StartPage))
          button1.pack()
      else:
          box.showerror("Login failed", "Incorrect username")
  • Ich habe noch nie gesehen: logbtn.grid(columnspan=2); logbtn.pack(), das heißt, "reiben" ein widget, und sofort nach dem "Verpacken" können. Ich weiß nicht, was ist der eigentliche Effekt, aber ich fast ziemlich sicher, dass das nicht der "richtige" Weg, es zu tun.
  • vielen Dank für die hilft. Ich kann laufen, ohne zu zerstören. alle gut funktionieren. sobald ich laufen buttonPushed, es kommen Fehler. fühlen root ist global, es kann nicht aus dieser Klasse --------.selbst.root.destroy()
InformationsquelleAutor jack | 2016-02-28
Schreibe einen Kommentar