我用的是qt手册上的示例代码,结果运行时却出现如下问题:
如图程序运行时,开始一段时间是不显示进度条、百分比之类的。
运行一段时间之后,到50%才显示。当时数字是2,总数是4。
我用了网上的方案,增加了一条代码。
progress.setMinimumDuration(0);
然后从25%开始显示了,最开始仍不显示。
最后我开始各种代码组合试,试成功了,感觉就是系统的一个bug,你要想办法规避这个bug。
QProgressDialog progress(tr("Detect cells..."), tr("Cancel"), 0, totalNum, this);
progress.setWindowModality(Qt::WindowModal);
progress.setMinimumDuration(0); //这里设0,默认是4。
progress.show();
progress.setValue(1); //这里要设一下,否则后面不显示,而且不能和下面的0是同一个数值。
(中间的其它代码) //要有所间隔
progress.setValue(0); //有了上面的设置,这里才能显示。
for (int i = 0; i < widthNum; i++)
for (int j = 0; j < heightNum; j++)
{
(中间的其它代码)
progress.setValue(i * heightNum + j + 1);
if (progress.wasCanceled())
break;
}