Задать вопрос

Как сделать QProgressBar полным?

Здравствуйте.
Использую QProgressDialog. Внутри у него есть QProgressBar, который в определённый момент нужно установить на максимум (заполнить), показать что процесс завершён.
PB = new QProgressDialog(this);
PB->setAutoClose(false);
PB->setWindowModality(Qt::WindowModal);
PB->setMinimum(1);
PB->setMaximum(100);
PB->setValue(100); // прогресс бар становится пустым

Суть в том, что когда устанавливаешь текущее значение на максимум, прогресс бар становится пустым, вместо того чтобы заполниться. Я не знаю как это исправить. Подскажите пожалуйста как правильно поставить значение на максимум?

З.Ы.: пробовал разные методы:
// #1
PB->setValue(PB->maximum()); // тоже самое
// #2
PB->setValue(PB->maximum() - 1); // округляется до 99%
// #3
PB->setMaximum(100);
PB->setValue(99.99999f); // округляется до 99%
  • Вопрос задан
  • 4263 просмотра
Подписаться 3 Оценить Комментировать
Решения вопроса 1
@Perzh Автор вопроса
Для будущих соискателей: у QProgressDialog есть свойство autoReset (по умолчанию true), которое отвечает за сброс value по достижению максимума. Чтобы решить проблему необходимо установить для этого свойства значение false:
p_diag = new QProgressDialog(this);
p_diag->setAutoClose(false);
p_diag->setAutoReset(false); // do not reset value
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@DancingOnWater
ui->progressBar->setValue(ui->progressBar->maximum());

Этот код точно работает. Проблема в окружающем коде.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы