Qt官方示例-数字时钟

  • 2019 年 12 月 16 日
  • 筆記

基于QLCDNumber实现的LCD的时钟显示。

DigitalClock继承于QLCDNumber,并实现一个槽函数showTime()用来定时更新时钟显示:

class DigitalClock : public QLCDNumber  {      Q_OBJECT    public:      DigitalClock(QWidget *parent = 0);    private slots:      void showTime();  };

DigitalClock构造函数初始化时间刷新定时器(一秒刷新一次)。

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);  }

  通过触发槽函数showTime从而调用display函数更新显示。这里有个小细节就是,将当前时间将转换为格式为hh:mm的字符串。当time.second()是偶数时,字符串中的冒号将被替换为空格。这样就可以每隔一秒出现并消失一次形成动态效果。

void DigitalClock::showTime()  {      QTime time = QTime::currentTime();      QString text = time.toString("hh:mm");      if ((time.second() % 2) == 0)          text[2] = ' ';      display(text);  }

关于更多

  • QtCreator软件可以找到:
  • 或在以下Qt安装目录找到:
C:Qt{你的Qt版本}Examples{你的Qt版本}widgetswidgetsdigitalclock
  • 相关链接
https://doc.qt.io/qt-5/qtwidgets-widgets-digitalclock-example.html