Digital Clock Example¶
The Digital Clock example shows how to use
QLCDNumber
to display a number with LCD-like digits.This example also demonstrates how
QTimer
can be used to update a widget at regular intervals.
DigitalClock Class Definition¶
The
DigitalClock
class provides a clock widget showing the time with hours and minutes separated by a blinking colon. We subclassQLCDNumber
and implement a private slot calledshowTime()
to update the clock display:class DigitalClock : public QLCDNumber { Q_OBJECT public: DigitalClock(QWidget *parent = nullptr); private slots: void showTime(); };
DigitalClock Class Implementation¶
DigitalClock::DigitalClock(QWidget *parent) : QLCDNumber(parent) { setSegmentStyle(Filled); QTimer *timer = new QTimer(this); connect(timer, &QTimer::timeout, this, &DigitalClock::showTime); timer->start(1000); showTime(); setWindowTitle(tr("Digital Clock")); resize(150, 60); }In the constructor, we first change the look of the LCD numbers. The
Filled
style produces raised segments filled with the foreground color (typically black). We also set up a one-second timer to keep track of the current time, and we connect itstimeout()
signal to the privateshowTime()
slot so that the display is updated every second. Then, we call theshowTime()
slot; without this call, there would be a one-second delay at startup before the time is shown.void DigitalClock::showTime() { QTime time = QTime::currentTime(); QString text = time.toString("hh:mm"); if ((time.second() % 2) == 0) text[2] = ' '; display(text); }The
showTime()
slot is called whenever the clock display needs to be updated.The current time is converted into a string with the format “hh:mm”. When
second()
is a even number, the colon in the string is replaced with a space. This makes the colon appear and vanish every other second.Finally, we call
display()
to update the widget.
© 2022 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.