[英]In Python, How to limit opening a window or pushing a button with tkinter
我正在用 Tkinter 做一个项目,我遇到了一个问题。 这是代码:
from tkinter import *
Root = Tk()
def Open():
Root1 = Toplevel()
MyButton = Button(Root, text="Open A New Window!", command=Open).pack()
mainloop()
这段代码的问题是,如果我按下按钮 10 次,它将打开 10 windows。 我试过这个来解决它:
from tkinter import *
Root= Tk()
def Open():
Root1 = Toplevel()
MyButton = Button(Root, text="Open A New Window!", command = Open, state=DISABLED).grid(row=0, column=0)
MyButton = Button(Root, text="Open A New Window!", command = Open).grid(row= 0, column=0)
mainloop()
但这也不起作用,因为在我关闭 New Window 之后我无法再次打开它,因为按钮将保持禁用状态。
下面应该可以工作。 不是最好的解决方案,但允许您在第二个 window 关闭时重新启用按钮。
from tkinter import *
Root= Tk()
def Open():
Root1 = Toplevel()
Root1.protocol("WM_DELETE_WINDOW", lambda x=Root1: on_closing(x))
MyButton['state'] = DISABLED
def on_closing(window):
MyButton['state'] = ACTIVE
window.destroy()
MyButton = Button(Root, text="Open A New Window!", command = Open)
MyButton.grid(row= 0, column=0)
mainloop()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.