关闭第二个Tkinter窗口不起作用

时间:2018-09-27 10:51:45

标签: python python-3.x tkinter

想象以下非常简单的示例:

from tkinter import *
from tempFunctions import *

startingWin = Tk()

button = Button(startingWin, text="Open Other Win", command=lambda: openSecondWin()).grid(row=0, column=0, padx=30, pady=30)

startingWin.mainloop()

输出如下:

enter image description here

否,如果我单击按钮,我将打开第二个Win,如:

enter image description here

第二个窗口在tempFunctions.py中具有以下代码:

from tkinter import *

def openSecondWin():

    secondWin = Tk()

    cancelButton = Button(secondWin, text="Cancel", command=secondWin.quit).grid(row=0, column=0, padx=30, pady=30)

    secondWin.mainloop()

我希望当我按Cancel时,secondWin应该关闭。那不会发生。我得到的是,当我单击“取消”时,第二个Win不会关闭。但是,如果单击两次,则两个窗口(startingWin和secondWin)将关闭。为什么?

对此有合理的解释吗? 谢谢!

更新:

尝试使用绑定会导致相同的问题。

以顶级水平获得第二个胜利也无济于事。

1 个答案:

答案 0 :(得分:1)

问题是我正在使用quit()。但是,在有多个窗口的情况下,应根据答案here使用destroy()。那解决了我的问题。