当用户单击“开始”按钮时,我想同时关闭两个窗口,新窗口将弹出,而当用户在“第二个”弹出窗口中单击“退出”按钮时,两个窗口均应关闭时间。
我知道,对于其他窗口,我必须创建一个单独的函数来退出窗口,但是我想单击一次关闭多个窗口。
我正在使用python 3.7!
import tkinter
def NewWindow():
def qExit():
root.destroy()
root = tkinter.Tk()
root.title("New Window")
newButton = tkinter.Button(root, text=" Click here to Exit:",
command=qExit)
newButton.pack()
root.geometry("300x200")
root.mainloop()
Window = tkinter.Tk()
Window.title("hello")
eButton = tkinter.Button(Window, text="Start", command=NewWindow)
eButton.pack()
Window.geometry("200x200")
Window.mainloop()
答案 0 :(得分:1)
在/public
应用程序中,您不应多次致电tkinter.Tk()
。如果要创建新窗口,请致电Toplevel()
。
通常,您也不需要多次致电tkinter
。
要同时关闭新窗口和主窗口,可以在创建主窗口时将其传递给前窗口,然后在mainloop()
函数(以及新窗口)中将其destroy()
传递给主窗口。本身。)
请注意,我更改了一些函数和变量名称,以更符合PEP 8 - Style Guide for Python Code准则。
qExit()
答案 1 :(得分:0)
一个简单的解决方案是只执行exit()来停止程序,这将关闭所有窗口。或者,您可以列出所有打开的窗口对象,然后对所有对象进行调用。
答案 2 :(得分:0)
无需描述
def qExit():
root.destroy()
Window.destroy()