Tkinter设计为仅从主线程运行。见文档:
只需在主线程中运行所有UI代码,然后让编写者将其写入Queue对象即可;例如
……然后是一个重要的示例,显示了辅助线程将请求写入队列,而主循环专门负责与Tk的所有直接交互。
许多对象和子系统不喜欢接收来自多个线程的请求,在使用GUI工具箱的情况下,不需要专门使用 主 线程。
解决此问题的正确Python架构始终是为服务挑剔的对象或子系统分配一个线程(如果需要,则使用一个主线程)。所有其他需要与所述子系统或对象进行交互的线程都必须通过将请求排队到专用线程来获得它(如果由于某些请求而需要结果,则可能在“返回队列”中等待结果)。这也是用于通用线程的非常完善的Python体系结构(我在“坚果壳中的Python”中对此进行了详尽的阐述,但这是另一个主题;-)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)