Ok, так что я с этой проблемой сегодня:Qt4 запуска и остановки (паузы)
[...]
connect(startButton, SIGNAL(clicked()), this, SLOT(startCalculation()));
connect(stopButton, SIGNAL(clicked()), this, SLOT(stopCalculation()));
[...]
void MainWindow::startCalculation()
{
qDebug() << "hello";
this->startButton->setDisabled(true);
this->stopButton->setEnabled(true);
this->calcStatus = true;
this->calculate();
}
void MainWindow::stopCalculation()
{
this->startButton->setEnabled(true);
this->stopButton->setDisabled(true);
this->calcStatus = false;
}
void MainWindow::calculate()
{
qDebug() << "hello";
while(this->calcStatus)
{
}
}
[...]
Я пытаюсь сделать процедуру высчитывает() останавливаемый в любое время, но сразу же после его начала я и я не могу нажать кнопку STOP. Конечно, в моих будущих планах calculate() собирается «рассчитать» что-то реальное (например, моделирование теплопередачи).
Спасибо за предложения. P.
Это работает хорошо, если вы можете разбить вычисление на дискретные шаги и повторно называть функцию таймера на нем, если вам нужно продолжать вычислять что угодно. Кроме того, вам не нужно указывать указатель QTimer ... внутри QTimer есть функция удобства: «QTimer :: singleshot (0, это, SLOT (calculate());». –