如何一次单击关闭多个窗口?

时间:2019-04-07 14:39:32

标签: python python-3.x tkinter

当用户单击“开始”按钮时,我想同时关闭两个窗口,新窗口将弹出,而当用户在“第二个”弹出窗口中单击“退出”按钮时,两个窗口均应关闭时间。

我知道,对于其他窗口,我必须创建一个单独的函数来退出窗口,但是我想单击一次关闭多个窗口。

我正在使用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()

3 个答案:

答案 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()