我有一段代码,我在其他地方使用过,但在这种情况下,它没有。基本上我的函数体计算了一堆东西,将结果存入一个pandas DataFrame并将其绘制到一个matplotlib画布上。PyQt:QProgressDialog显示但是为空(显示背景内容)
我把下面的代码放在函数体的顶部,希望它在函数调用期间显示一个对话框。但是,所发生的一切都是出现对话框,其中框内容反映了屏幕后立即显示的内容。这将在函数调用期间保留在屏幕上,然后在完成运行时正确关闭。
任何想法出了什么问题?
万一它有用,父母(self
)是QWidget
。
噢,还有一件事,如果我删除了progress.cancel()
行,一旦该函数的主要部分完成执行,QProgressDialog
实际上会使用进度栏和标签文本('Updating ...')自己绘制自己。
非常感谢您的帮助!
progress = QProgressDialog(parent = self)
progress.setCancelButton(None)
progress.setLabelText('Updating...')
progress.setMinimum(0)
progress.setMaximum(0)
progress.forceShow()
#calculate and plot DataFrame
progress.cancel()
你可以尝试app.processEvents (),其中app是QApplication实例,在进入计算之前。 – mdurant 2014-10-10 15:54:59
感谢您的回复!有没有一种简单的方法可以从我的课程中访问应用程序实例? – Ben 2014-10-10 17:22:33
'QtGui.QApplication.instance()' – mdurant 2014-10-10 17:24:41