gpt4 book ai didi

python - Tkinter 是否有我可以使用的固定或重复更新循环?

转载 作者:太空宇宙 更新时间:2023-11-03 16:49:53 25 4
gpt4 key购买 nike

我有一个 GUI 在主线程中运行,第二个线程不断从共享队列获取输入。多个后台线程正在执行不同的进程,第二个线程获取所有输出并更新 GUI。到目前为止,还没有出现任何问题,但是有无数警告 Tkinter 不是线程安全的。

在这种情况下,我可以将所有这些代码复制到另一个常量循环中,但我找不到可以将其放在哪里,因此它也在主线程中并且不会锁定 GUI。正确的做法是什么?

谢谢。

最佳答案

Tkinter 有一个运行的事件循环。您可以通过编写一个定期将自身不断添加到事件队列的函数来利用这一点。

解决方案大致如下:

def some_func():

<do your work here>

# call this function again in 1 second
root.after(1000, some_func)

一旦调用一次,它将继续每秒调用一次。在生产代码中,您需要添加一些防弹措施,例如检查应用程序关闭时设置的标志。

这并不完全是递归,因此您不必担心堆栈空间不足,因为这只是在事件队列中添加一个新作业,以便在将其放入事件队列后一秒内运行队列。

关于python - Tkinter 是否有我可以使用的固定或重复更新循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35949829/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com