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