2

我正在使用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在窗口中看到?

4

1 回答 1

0

您可以使用 Qthread,这样程序的事件循环就不会被阻塞。并通过计时器或从 subprocess.call 读取信息或仅在进程栏中显示忙碌图标来增加进度条的值。

于 2012-07-19T20:44:35.337 回答