首页 > 解决方案 > Python Threading Tkinter:为什么线程的第二次启动无法正常运行?

问题描述

我正在尝试学习如何在终端中工作时托管第二个帮助窗口来托管一些数据。其中一部分涉及定期更改窗口的内容,我希望第二个窗口不要阻塞主进程。所以我希望能够将 tkinter 文本作为线程启动。

以下是我目前拥有的。第一次调用启动线程时,tkinter 文本框出现,一旦关闭,线程就会加入。在第二次启动时,没有创建窗口,您可以看到从未调用过“启动后”。有谁知道我做错了什么?谢谢!

>>> import threading
>>> import tkinter as tk
>>> def build_textbox():
    root = tk.Tk()
    T= tk.Text(root, height=100, width=100)
    T.pack()
    T.insert(tk.END, "Hello World")
    tk.mainloop()


>>> def launch_thread():
    print("Function called")
    thread = threading.Thread(target=build_textbox)
    print("Thread created")
    thread.start()
    print("After start")
    thread.join()
    print("Success")


>>> launch_thread()
Function called
Thread created
After start
Success
>>> launch_thread()
Function called
Thread created

标签: pythonmultithreadingtkinter

解决方案


推荐阅读