繁体   English   中英

在 Python 中,如何限制打开 window 或使用 tkinter 按下按钮

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM