image for that
我这里有几行代码,这是登录系统,工作正常,但是当我提供错误的密码时,我可以多次单击 Toplevel
按钮,而不关闭 messagebox
。如何我可以这样做吗,以便必须先关闭messagebox
,然后才能再次尝试。
from tkinter import *
from tkinter import messagebox
def top():
if entry1.get() == "333":
log.destroy()
root.deiconify()
else:
messagebox.showerror("error", "try again")
root = Tk()
root.geometry("300x300")
log = Toplevel(root)
log.geometry("200x200")
label1 = Label(log, text="password")
entry1 = Entry(log)
button1 = Button(log, text="login", command=top)
label1.pack()
entry1.pack()
button1.pack(side="bottom")
lab = Label(root, text="welcome bro").pack()
root.withdraw()
root.mainloop()
最佳答案
您需要使日志窗口成为对话框的父窗口:
messagebox.showerror("error", "try again", parent=log)
默认情况下,它将使用根窗口(Tk
实例)作为父窗口,在本例中这不是您想要的。
关于python - 如何强制关闭顶级窗口的消息框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47652001/