Russian Qt Forum
Ноябрь 26, 2024, 08:57 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: QProgressBar - не устанавливается значение  (Прочитано 2441 раз)
Hoksmur
Гость
« : Август 24, 2013, 07:31 »

 На морде приложения есть прогрессбар, значения обновляются по таймеру. Когда "выполнено" - таймер отключаю, удаляю. Прогресс тут же нужно привести в исходное состояние min 0,  max 100, val -1. Так вот, выставление в -1 не отрабатывает.
Код
C++ (Qt)
void Widget::tickTimer()
{
   QDateTime now = QDateTime::currentDateTime();
   QDateTime finishTime = startTime.addMSecs( countMsec);
   int progress;
   if (countMsec==0) { // if manual stop
       // ui->progressBar->setMinimum(0);
       ui->progressBar->setMaximum(0);
       ui->progressBar->setValue(-1);
   } else {
       if ( now < finishTime ){ // if "working"
           progress = 100*(startTime.secsTo(finishTime)-now.secsTo(finishTime)) / startTime.secsTo(finishTime);
           // ui->progressBar->setMinimum(0);
           ui->progressBar->setMaximum(100);
           ui->progressBar->setValue(progress);
       } else { // if "finished"
           // ui->progressBar->setMinimum(0);
           ui->progressBar->setMaximum(100);
           ui->progressBar->setValue(-1);
       }
   }
}
 

Код
C++ (Qt)
   if (barTimer != static_cast<QObject*>(NULL)) { // if timer exist
       disconnect(barTimer, SIGNAL(timeout()), this, SLOT(button_Stop_ClickHandler()));
       barTimer->stop();
       delete barTimer;
       // barTimer = NULL;
   }
// ......
   ui->progressBar->setValue(-1);
   ui->progressBar->setMinimum(0);
   ui->progressBar->setMaximum(100);
 
   qDebug()<< "min, max, val" << ui->progressBar->minimum()
           << ui->progressBar->maximum()
           << ui->progressBar->value();
 

qDebug выдаёт так (поведение соответсвует):
Цитировать
min, max, val 0 100 3

UPD
устанавливается, проверил заменой -1 на 20, но остаётся проблема, как привести в "исходный" вид.
« Последнее редактирование: Август 24, 2013, 07:46 от Hoksmur » Записан
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #1 : Август 24, 2013, 07:47 »

А для чего вы пытаетесь установить значение в -1?
setValue игнорирует значения не входящие в интервал min - max.

Есть метод reset.
« Последнее редактирование: Август 24, 2013, 07:49 от Old » Записан
Hoksmur
Гость
« Ответ #2 : Август 24, 2013, 07:55 »

Оно!  Веселый Спасибо!
Как в той присказке получилось:
"Если ничто не помогает, прочтите, наконец, инструкцию!"
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.097 секунд. Запросов: 23.