繁体   English   中英

当我不知道要花多长时间时,如何显示QProgressDialog?

[英]How do I get my QProgressDialog to show up when I don't know how long it will take?

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM