Ich mache ein behelfsmäßiges System mit Python. Derzeit, wenn Sie das richtige Passwort eingeben, öffnet sich ein neues Admin-Fenster. Wenn Sie den falschen eingeben, wird ein neues Fenster mit falschem Passwort angezeigt. Wenn Sie aus einem dieser Fenster aussteigen und dann versuchen, ein Passwort erneut einzugeben, bricht es ab. tkinter.TclError: can't invoke "wm" command: application has been destroyed
Gibt es eine Möglichkeit, dies zu verhindern? Wenn jemand ein falsches Passwort eingibt, muss er die App nicht neu starten?Wie man ein Tkinter-Fenster mehrfach geöffnet lassen kann
import tkinter
from tkinter import *
#define root window
root = tkinter.Tk()
root.minsize(width=800, height = 600)
root.maxsize(width=800, height = 600)
#define admin window
admin = tkinter.Tk()
admin.minsize(width=800, height = 600)
admin.maxsize(width=800, height = 600)
admin.withdraw()
#define wrong window
wrong = tkinter.Tk()
wrong.minsize(width=200, height = 100)
wrong.maxsize(width=200, height = 100)
wrong.withdraw()
Label(wrong, text="Sorry that password is incorrect!", font=("Arial", 24), anchor=W, wraplength=180, fg="red").pack()
#Admin sign in Label
areAdmin = Label(root, text="Administrator sign in", font=("Arial", 18))
areAdmin.pack()
#password label and password
passwordLabel = Label(root, text="Password: ", font=("Arial", 12))
passwordLabel.place(x=300, y=30)
#password entry
adminPasswordEntry = Entry(root)
adminPasswordEntry.place(x=385, y=32.5)
#function for button
def getEnteredPassword():
enteredPassword = adminPasswordEntry.get()
if enteredPassword == password:
admin.deiconify()
else:
wrong.deiconify()
#enter button for password
passwordEnterButton = Button(root, text="Enter", width=20, command=getEnteredPassword)
passwordEnterButton.place(x=335, y=60)
mainloop()
es ist lustig, ich begann Admin in die if-Anweisung Codierung und entschied sich dann auch nicht, ich denke, sollte ich , Danke für die Antwort. Was ist falsch = Keine und admin = Keine? – Shniper