#c #qt #clock
#c #qt #часы
Вопрос:
Я хочу создать простые часы в моей программе Qt: QLabel, которые обновляются раз в секунду.
Имя QLabel: label_clock
Мой «скрипт» часов:
while (true)
{
QString time1 = QTime::currentTime().toString();
ui->label_clock->setText(time1);
}
Но когда я добавляю его в свою программу, вы уже знаете, что он перестанет выполнять его в этом скрипте — while всегда выдает true , поэтому остальной код в скрипте никогда не будет выполнен -> сбой программы.
Что я должен сделать, чтобы заставить этот скрипт работать? Я хочу создать простые часы, которые обновляются раз в секунду.
Комментарии:
1. Разве вы не должны хотя бы «спать» в течение одной секунды между каждой итерацией цикла?
2. @Max итак, что я должен использовать вместо этого?
Ответ №1:
Для этого вы можете использовать QTimer. Попробуйте что-то вроде этого:
QTimer *t = new QTimer(this);
t->setInterval(1000);
connect(t, amp;QTimer::timeout, [amp;]() {
QString time1 = QTime::currentTime().toString();
ui->label_clock->setText(time1);
} );
t->start();
Конечно, вы должны включить поддержку c 11 (добавить в свой pro
файл CONFIG = c 11
).
Комментарии:
1. Работает нормально, спасибо. Это то, что я искал!