【发布时间】:2012-07-18 20:11:42
【问题描述】:
我正在使用subprocess.call 运行需要一段时间(>5 分钟)才能运行的命令提示符命令:
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?
【问题讨论】:
-
我是否正确理解了您的问题 - 问题是进度对话框没有显示?
-
@GeorgSchölly 它没有完全显示出来。显示的是图片,对话框显示了,但里面的东西没有
-
看起来
subprocess.call()是一个阻塞函数调用。如果您像这样阻止事件循环,Qt 将无法绘制任何内容(例如进度条)。