Qt官方示例-数字时钟

*爱你&永不变心* 提交于 2019-12-14 11:17:12

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

demo.gif

  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软件可以找到:

what_find.png

  • 或在以下Qt安装目录找到:
C:\Qt\{你的Qt版本}\Examples\{你的Qt版本}\widgets\widgets\digitalclock
  • 相关链接
https://doc.qt.io/qt-5/qtwidgets-widgets-digitalclock-example.html
  • Qt君公众号回复『Qt示例』获取更多内容。
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!