我有一个for循环,它在每次迭代中设置进度条的值。
for循环执行此处描述的setProgress方法:
void setProgress(int progStep){
progressBar->setValue(progStep);
progStep++;
QTextStream(stdout) << progStep << " " << progSum << endl;
}
我可以打印出最后一行,因此可以执行该方法,但是进度栏的GUI不会每次都更新。
当我的最大值为25(且最小值为0)时,该方法将打印0-25之间的每个数字。我的目标是让进度条在执行期间显示25个不同的百分比值。
结构体:
for(.....) {
.....
.....
setProgress(progStep);
}
实际发生的情况是它用大约2-3倍的百分比值更新进度条。 for循环大约需要30秒,因此肯定可以进行25%的更新。
我该如何解决?
最佳答案
您必须在调用QApplication::processEvents()
之后调用setProgress(progStep)
,以使GUI线程更新进度条。
关于c++ - 运行setValue时QTProgressBar不更新,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11246066/