【发布时间】:2022-01-12 18:11:33
【问题描述】:
我有一个主线程,它拥有一个带有我想要重复更新的标签的小部件。在父线程中我可以循环一千次(测试运行)并且它工作正常。当我将小部件的实例传递到一个新线程并尝试在那里执行它时,它会更新一点然后停止。如果我将鼠标悬停在它上面,当我将鼠标移开时,它会很好地更新并再次停止。我假设鼠标正在强制小部件进入焦点和/或“活动窗口”状态,但是当我尝试调用任何一种方法来设置焦点或活动窗口状态时,它没有任何区别。也许它正在提高线程的优先级?
有没有一种方法可以确保每次更新小部件标签的调用都被看到,而无需将鼠标移到它上面?
【问题讨论】:
-
请提供minimal reproducible example。除了运行
main的线程之外,您不能直接从任何线程修改QWidget——它不受支持。您可能应该改用排队信号/槽机制。 -
这能回答你的问题吗? Modify Qt GUI from background worker thread
标签: multithreading qt widget focus repeat