在PyQt5中编写GUI应用程序时,我遇到了奇怪的行为。 当我想打开一个信息窗口,并开始做另一件事后,它完全加载。我注意到信息窗口在下一段代码完成之前不会完全加载。你知道吗
这就是它的样子
复制此不需要的行为的代码
from PyQt5.QtWidgets import QApplication,QMessageBox
import sys
import os
app = QApplication(sys.argv)
box = QMessageBox()
box.setText("Text")
box.show()
os.system("ping 8.8.8.8 ")
sys.exit(app.exec())
无论我使用QMessegBox、在另一个类中继承它还是编写自己的QMeesgeBox类型类,行为都是相同的。你知道吗
我想这种行为是因为操作系统()函数,我将使用进程或线程来解决问题,但如果可能的话,我希望确保窗口已完全加载,然后进行下一个过程。你知道吗
Python版本3.7.0
PyQt5版本5.12.1
虽然S.Nick和Guimoute的解决方案似乎有效,但实际情况是,它只使窗口显示了一小会儿,但如果你想与它互动,你会看到它是冻结的,例如尝试移动窗口来检查它。
os.system()
任务被阻塞,因此必须在另一个线程中执行或使用QProcess:
更新
另一种选择:
下面是一个单线解决方案:
作为一种选择。试试看:
相关问题 更多 >
编程相关推荐