我使用以下代码来检查 Tkinter 是否与多线程一起工作。但是下面的代码不起作用(Gui一运行就没有响应)。谁能解释一下为什么它不起作用?
from threading import Thread
import tkinter as tk
window = tk.Tk()
label = tk.Label(window, text='Hello')
label.pack()
def func():
i = 1
while True:
label['text'] = str(i)
i += 1
Thread(target=func).start()
Thread(target=window.mainloop).start()
它不起作用,因为 Tkinter 不支持多线程。与 Tkinter 小部件交互的所有内容都需要在主线程中运行。如果要使用多线程,请将 GUI 放在主线程中,将其他代码放在工作线程中,并使用线程安全队列在它们之间进行通信。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)