我对tkinter Toplevel小部件有一些问题。每当我尝试破坏顶层窗口时,它都不会关闭,而是变为不活动状态。每当我单击应该已被破坏的窗口时,都会收到一个memoryaddress错误。有人知道我在做什么错吗?
示例代码:
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()
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()
所有Tkinter访问都必须来自主线程(或更准确地说,是称为mainloop的线程)。违反此规定可能会导致令人讨厌和神秘的症状,例如冻结或堆芯。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句