python - 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
解决方案
推荐阅读
- ruby-on-rails - 将 curl 重写为 HTTP POST 请求以获取访问令牌
- javascript - Puppeteer:如何将对象传递给 page.evaluate?
- python - 当文件没有所需的权限时抛出异常
- javascript - 如何将状态标志存储为 GLSL / WebGL 的浮点数
- java - 监视自注入 bean
- apache-spark - 在 pyspark 中设置 log4j 属性
- directory - 如何在 App Maker 中自动记录用户名
- linux-kernel - 如何在 linux 内核源代码中关闭内核页表隔离功能?
- android - Android Google Place API 错误状态{statusCode=PLACES_API_ACCESS_NOT_CONFIGURED, resolution=null}
- makefile - 如何在makefile中使用不同的编译器?