gpt4 book ai didi

c++ - 为什么 QProgressDialog 在执行 QProcess 后没有得到更新?

转载 作者:行者123 更新时间:2023-11-28 03:56:27 32 4
gpt4 key购买 nike

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

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

最佳答案

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

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

关于c++ - 为什么 QProgressDialog 在执行 QProcess 后没有得到更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3427483/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com