19

我试图在某些操作期间显示进度条。但是,我不知道需要多少次才能计算出百分比。似乎 Windows 有这样的进度条样式: 无限浮动进度条 我尝试通过将最大值和最小值都设置为 0 来实现这种样式:

ui->progressBar->setMaximum(0);

ui->progressBar->setMinimum(0);

似乎我做到了,除了它真的不会在程序退出之前停止,尽管我调用了 reset() 函数试图停止它。

所以我的问题是如何正确实现这种进度条?

4

3 回答 3

23

您需要设置最小值、最大值和当前值:

ui->progressBar->setMaximum(0);
ui->progressBar->setMinimum(0);
ui->progressBar->setValue(0);

QProgressBar'a 详细描述告诉:

如果最小值和最大值都设置为 0,则条形图显示忙碌指示符,而不是步数百分比。

这一定是您遇到的某种错误。不会是Qt中的第一个。

于 2012-08-01T08:00:42.687 回答
12

操作完成后,尝试设置任意最大值并将进度值设置为相同的数字:

ui->progressBar->setMaximum(100);
ui->progressBar->setValue(100);

这样,进度条应该填满以指示完成(这是一个方便的视觉提示,因为您的操作实际上已经完成)。

于 2012-08-01T07:58:41.463 回答
6

我赞成BЈовић的解决方案,因为他指出从官方文档中引用,但不幸的是,这种机制对我不起作用(无法弄清楚是什么原因)。这是我解决它的方式(根据文档,QProgressBar::setRange-- QProgressBar 可以通过使用设置为未确定状态setRange(0, 0)):

ui->progressBar->setRange(0, 0);
于 2016-05-14T13:17:39.263 回答