2010-07-13 53 views
0

我有一個進展,我與PyQt4 QProgessDialog「mintor」。基本上,我有這樣一個循環:使QProgressDialog更新,也值不會改變

while progressThread.isRunning(): 
    self.progressDialog.setRange(0, self.progressTotal_) 
    self.progressDialog.setValue(self.progress_) 
del self.progressDialog 

的progressThread upades變量self.progessTotal_和self.progress_

這工作得很好,當progress_變化值不斷。 但是對於某些任務而言,情況並非如此(因爲進度報告並不詳細)。

結果是,progressDialog顯示一個灰色的窗口,直到出現變化。我可以在while循環中插入什麼,強制progressDialog升級也沒有變化?

謝謝! nathan

回答

0

您應該將來自線程的更新信號連接到進度對話框。你用你的循環阻塞了UI線程。你可以在循環中添加一個QApplication :: processEvents調用,但是不要阻塞UI線程,你會沒事的。

+0

嘿, 謝謝,這是有道理的。我很難做到這一點。我知道如何將信號連接到python函數。但是,我怎樣才能創建自己的信號,將它連接到setProgress插槽並從線程調用它? – Nathan 2010-07-13 16:10:46

+0

@Nathan http://www.commandprompt.com/community/pyqt/x1408查看示例7-7。從您的QThread子類中發出您的信號。 – 2010-07-13 16:18:07

相關問題