如何在代码后端运行无限循环时获取响应式GUI?PyQT

4 投票
2 回答
2178 浏览
提问于 2025-04-15 18:43

如果你有一个函数在后台一直不停地运行一个无限循环,那么你的图形界面(GUI)怎么可能会有反应呢?因为它一直在等这个循环结束,这样一来,界面就变得没法用了。那在PyQT中是怎么解决这个问题的呢?

2 个回答

0

你可以在一个叫做QThread的地方运行那些不需要图形界面的代码。这样,你的图形界面就不会卡住,依然可以正常使用。

如果你想学习QT中的线程使用,可以查看这个教程:

http://doc.trolltech.com/4.4/threads.html

关于Qt的线程类(QThread)的详细说明,可以在这个链接找到:

http://doc.trolltech.com/4.4/qthread.html#details

这两个链接都是关于C++的文档,但即使你在用PyQt,它们也很有用,尤其是当PyQt的文档不够详细的时候。

4

使用线程。

在Qt中,他们使用一种叫做 信号和槽 的机制。我自大学以来就没用过Qt,但这里有很多不错的资源可以参考:

PyQt维基百科: 线程、信号和槽

还有这个相关的StackOverflow帖子: 在PyQt应用中使用Qt线程还是Python线程? 或者

Python - 在单独线程中运行PyQt应用

撰写回答