我有这样的事情:
first.py
from tkinter import *
def new_window(event):
root.destroy()
import second
root = Tk()
b = Button(root, text='New window')
b.pack()
b.bind('<Button-1>', new_window)
root.mainloop()
second.py
from tkinter import *
root = Tk()
root.mainloop()
但是当我打开第二个窗口时,第一个窗口被摧毁(我希望如此),但第二个窗口被冻结(显示,但顶部没有关闭按钮,我只看到发射 - 图标)。为什么会这样?我不要杀掉第一个循环吗?
答案 0 :(得分:2)
问题可能是因为import second
永远不会返回,因为它做的最后一件事就是调用root.mainloop()
。由于它永远不会返回,因此第一个窗口中的回调永远不会完成。由于它永远不会完成,它无法处理任何其他事件。