首页 Qt官方示例解析系列2:Analog Clock
文章
取消

Qt官方示例解析系列2:Analog Clock

实现了什么功能

实现了一个时钟,展示了使用paintEvent 来对自定义控件进行绘制。

elesos

用到的知识点

QPainter的使用

部分源码解析

1
2
3
4
5
6
7
8
connect(timer, &QTimer::timeout, this, QOverload<>::of(&AnalogClock::update));
QOverload<>::of() 是一个模板函数,它接受一个函数指针, 超时就调update刷新界面, 可以用qOverload<>(xxx) 代替

QTime::currentTime() 用于获取当前时间,然后可以调用 .hour()获取小时数

painter.save()restore 可以确保他们之间的旋转代码不会影响到后续的绘制。

Qt::NoPen :不会有outline,不然会有轮廓线。

另外qt5的官方示例里面还有一个《Analog Clock Window Example》,继承自QWindow,show 后会收到 exposeEvent,然后绘制,用到了示例1里面的类。

可以通过startTimer来启动定时器,然后在timerEvent里面判断timerId()。

本文由作者按照 CC BY 4.0 进行授权