在我的程序中,我想在按钮上使用forget()
。现在,如果我尝试这样做,程序将崩溃。我知道它与线程有关,但是我还没有找到解决之道。提前致谢。这是我的示例代码:
import Tkinter as tk
import thread
window = tk.Tk()
def ok():
pass
def voice():
button1.forget()
print("If you see this, it works!")
thread.start_new_thread(voice,())
button1=tk.Button(command=ok, text="PRESS")
button1.pack()
window.mainloop()
最佳答案
除了创建对象的线程外,您不能从任何线程访问tkinter对象。换句话说,您不能从线程中调用button1.forget()
并期望它可靠地工作。
普遍接受的解决方案是让您的线程将信息写入线程安全的队列,并让您的GUI线程定期轮询该队列,拉出一个项目,然后执行该项目所要求的一切。
关于python - Python Tkinter程序崩溃时忘记了(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27321126/