数字时钟案例(定时器的应用)

【补充1:QLCDNumber】
风格 | 结果 |
---|
Outline | 产生填充背景颜色的凸起段 |
Filled (这是默认设置)。 | 产生填充前景色的凸起段。 |
Flat | 生成填充前景色的平面段。 |
QLCDNumber::SegmentStyle | segmentStyle() const |
void | setSegmentStyle(QLCDNumber::SegmentStyle) |
【补充2:QTime Class】
#ifndef DIGITALCLOCK_H
#define DIGITALCLOCK_H
#include <QLCDNumber>
class DigitalClock : public QLCDNumber
{
Q_OBJECT
public:
DigitalClock(QWidget *parent = nullptr);
private slots:
void showTime();
};
#endif
#include "digitalclock.h"
#include <QTime>
#include <QTimer>
#include <QPalette>
DigitalClock::DigitalClock(QWidget *parent)
: QLCDNumber(parent)
{
setAutoFillBackground(true);
QPalette p=this->palette();
p.setColor(QPalette::Window, QColor(0, 0, 0));
p.setColor(QPalette::WindowText, QColor(255, 255, 255));
this->setPalette(p);
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);
}
void DigitalClock::showTime()
{
QTime time = QTime::currentTime();
QString text = time.toString("hh:mm");
if ((time.second() % 2) == 0)
text[2] = ' ';
display(text);
}