繁体   English   中英

为什么执行QProcess后QProgressDialog没有更新?

[英]Why is a QProgressDialog doesn't get updated after executing a QProcess?

我正在使用QProgressDialog来显示长时间运行的操作的状态,其中包括运行外部可执行文件的步骤。 我使用QProcess :: execute()方法运行外部可执行文件。 QprogressDialog可以很好地更新标签文本,直到到达QProcess :: execute()方法,此后才不更新状态。

运行可执行文件后如何更新状态。

QProcess::execute()是一种阻塞方法:它将阻塞其调用线程,直到生成的进程终止为止。 如果您从主线程调用此方法,则在该方法返回之前不会处理UI事件。

为了解决这个问题,您可以创建一个QProcess实例(而不是使用其静态方法),然后创建一个插槽,该插槽继续外部进程完成运行之后发生的部分操作,并将其连接到QProcess::finished(int, QProcess::ExitStatus)信号。

暂无
暂无

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

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