我有一段代碼,我在其他地方使用過,但在這種情況下,它沒有。基本上我的函數體計算了一堆東西,將結果存入一個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