Создание простых часов в QT

#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. Работает нормально, спасибо. Это то, что я искал!