如何在不知道百分比的情况下在Qt中显示“无限浮动”进度条?

时间:2012-08-01 07:52:49

标签: c++ qt qt4

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

ui->progressBar->setMaximum(0);

ui->progressBar->setMinimum(0);

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

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

3 个答案:

答案 0 :(得分:17)

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

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

QProgressBar'a details description告诉:

  

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

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

答案 1 :(得分:12)

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

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

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

答案 2 :(得分:5)

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

ui->progressBar->setRange(0, 0);