Я пытаюсь понять правильный способ обновления виджета во время кадра.Конкретная проблема, которую я пытаюсь решить, - установить оставшееся время таймера на метке.
Я создал и запустил таймер
MainTimer = new QTimer(this);
MainTimer->setSingleShot(true);
MainTimer->start(5000);
, а на QML у меня естьметка UI_MainTimerLabel, к которой я могу получить доступ через ui->UI_MainTimerLabel->setNum(int)
.
Поскольку QTimer не предоставляет сигнал OnTimerUpdate
или метод обратного вызова, я предполагаю, что мне нужно создать какой-то цикл для чтения значения таймераи установите для него метку.
Должен ли я сделать это через QThread?
QThread::create([&]() {
while(true)
{
ui->UI_RemainingTimer->setNum(MainTimer->remainingTime());
}
})->start();
(примечание: я знаю, что это не сработает, но это не проблема, поскольку я 'я просто пытаюсь понять концепцию)
Должен ли я использовать 0-временный QTimer?
UpdateTimer = new QTimer(this);
//{binding the UpdateTimer end signal to a ui->UI_RemainingTimer->SetNum(MainTimer->RemainingTimer() function}
UpdateTimer->start(0);
Должен ли я использовать QEventLoop (но мне еще предстоит полностью понять, каково их правильное использование)?
Стоит ли использовать созданный пользователем виджет "MyTimerLabel", который самообновляется (в каком виртуальном переопределенном методе?)?
Или есть какой-то другой правильный способ управленияВремя обновления, что я не мог понять?(Я пытаюсь получить общий правильный подход, но не подход к решению этой конкретной проблемы)
Заранее спасибо