Russian Qt Forum

Qt => Вопросы новичков => Тема начата: Hoksmur от Август 24, 2013, 07:31



Название: QProgressBar - не устанавливается значение
Отправлено: 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, но остаётся проблема, как привести в "исходный" вид.


Название: Re: QProgressBar - не устанавливается значение
Отправлено: Old от Август 24, 2013, 07:47
А для чего вы пытаетесь установить значение в -1?
setValue игнорирует значения не входящие в интервал min - max.

Есть метод reset.


Название: Re: QProgressBar - не устанавливается значение
Отправлено: Hoksmur от Август 24, 2013, 07:55
Оно!  :D Спасибо!
Как в той присказке получилось:
"Если ничто не помогает, прочтите, наконец, инструкцию!"