2
我使用subprocess.call
運行命令提示符命令需要一段時間(> 5分鐘)運行:當我不知道需要多長時間時,如何讓我的QProgressDialog顯示出來?
subprocess.call([command, param1, param2], cwd=cwdDir)
我想用一個QProgressDialog表明該命令正在運行。我這樣做:
progressDialog = QProgressDialog("Executing...", "", 0, 0)
progressDialog.setCancelButton(None)
progressBar = QProgressBar(progressDialog)
progressBar.setMinimum(0)
progressBar.setMaximum(0)
progressDialog.setBar(progressBar)
progressDialog.show()
subprocess.call([command, param1, param2], cwd=cwdDir)
progressDialog.close()
當我運行我的程序,這是顯示的內容:
過了一會兒,我的命令執行完畢,窗口就會關閉。我如何獲得它,以便您可以在窗口中看到QProgressBar
?
我是否正確理解您的問題 - 問題是進度對話框不顯示? – 2012-07-19 15:40:32
@GeorgSchölly它並沒有完全顯示出來。圖中顯示的是對話框,但其中的內容不是 – 2012-07-19 15:43:20
它看起來像'subprocess.call()'是一個阻塞函數調用。如果你阻止事件循環,Qt就不能畫任何東西(比如你的進度條)。 – Chris 2012-07-19 16:12:09