我的Toplevel小部件有点问题。每当我试图摧毁一个托普莱尔窗口,它不会关闭,相反,它会变得不活跃。每当我单击本应被销毁的窗口时,我都会得到一个内存地址错误。有人知道我做错了什么吗?
示例代码:
from tkinter import *
import _thread as thread
import time
root = Tk()
root.title('root')
login = Toplevel(root)
login.title('login')
thread.start_new_thread(root.mainloop,())
time.sleep(3)
login.destroy()发布于 2014-04-16 13:14:13
Tkinter不是线程安全的。所有Tkinter调用都应该来自一个线程。使用root.after来安排在延迟后发生的函数调用。
from tkinter import *
root = Tk()
root.title('root')
login = Toplevel(root)
login.title('login')
root.after(3000, login.destroy)
root.mainloop()根据TkinterSummary
所有Tkinter访问必须来自主线程(或者更准确地说,是调用main循环的线程)。违反这一规定可能会引起严重而神秘的症状,如结冰或堆芯。
https://stackoverflow.com/questions/23110048
复制相似问题