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

use*_*121 16 c++ qt qt4

我尝试在某些操作中显示进度条.但是,我不知道需要多少次才能计算百分比.Windows似乎有这样的进度条样式: 无限浮动进度条 我尝试通过将maximum和minimum设置为0来实现此样式:

ui->progressBar->setMaximum(0);

ui->progressBar->setMinimum(0);
Run Code Online (Sandbox Code Playgroud)

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

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

BЈо*_*вић 17

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

ui->progressBar->setMaximum(0);
ui->progressBar->setMinimum(0);
ui->progressBar->setValue(0);
Run Code Online (Sandbox Code Playgroud)

QProgressBar'a详细说明告诉:

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

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


Fré*_*idi 12

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

ui->progressBar->setMaximum(100);
ui->progressBar->setValue(100);
Run Code Online (Sandbox Code Playgroud)

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


tro*_*ane 6

我投票了B ????? 的解决方案,因为他指出了从官方文档中引用的内容,但不幸的是,这种机制对我不起作用(无法弄清楚是什么原因)。这是我解决问题的方式(根据文档,QProgressBar::setRange- 可以使用来将QProgressBar设置为不确定状态setRange(0, 0)):

ui->progressBar->setRange(0, 0);
Run Code Online (Sandbox Code Playgroud)