循环的Qt冻结原因?

Qt freezing cause of the loop?

我用PYQT4设计了一个gui。它有两个按钮。开始按钮之一。它启动一个 start.py 文件。另一个按钮执行停止 start.py pid.

的 stop.py 文件

此 start.py 和 stop.py 文件位于远程位置。我正在使用 ssh 和 paramiko 连接到那里。

当我点击启动按钮时,gui 死机并且没有任何反应。我只能通过关闭程序来摆脱这种情况。我知道问题所在。因为 start.py 中有一个 while 循环,它永远不会结束。

当我点击开始按钮时,等待 while 循环。

我想 运行 start.py 而且我不想等待循环。它必须是 运行 在后台等..

我能做什么?我试图用另一个 .py 文件触发它。我使用了子流程方法。但没有成功。仍然有同样的问题。

看看PyQT theading。 如果您使用 python3.

,您也可以使用 asyncio

我找到了解决方案。我在线程中介绍了该功能。现在它可以正常工作,没有冻结或延迟。