2017-06-21 84 views
0

我有一个PyQt的窗口在Windows上运行此代码:PyQt的标签不改变文本

try: 
     self.actorUser.findIdfFiles(pathToFolder) 
     msg = "Processando arquivos..." 
     self.processingLabel.setText(msg) 

     self.actorUser.runSimulation(pathToFolder, pathToEpw) 

里面的“runSimulation”的代码,我使用的方法“呼叫”启动子。这会阻止我的GUI,并在窗口标题中出现“Python停止响应”,但如果稍等一下子进程正常结束,标签最终会更改。但我想要的是标签的文本在子流程开始之前确实发生了变化。我能做什么?

回答

2

Qt(以及大多数UI框架)只要设置了值就不会更新显示,只有当它们被告知重新绘制时。

你需要做的是增加一个通话

QtGui.QApplication.processEvents() 

您的长时间运行的子进程之前,使它处理所有挂起的事件。

+0

该死的!有效!非常感谢!!! – olegario