На морде приложения есть прогрессбар, значения обновляются по таймеру. Когда "выполнено" - таймер отключаю, удаляю. Прогресс тут же нужно привести в исходное состояние 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, но остаётся проблема, как привести в "исходный" вид.