qt qss设置字体大小_QT开发(十六)——QT绘图实例-钟表

本文介绍如何使用QT实现一个实时钟表,包括设置定时器、绘制时针、分针、秒针和刻度盘。通过定时器更新时间,并计算各指针旋转角度,实现动态显示。
摘要由CSDN通过智能技术生成
64a1f53a5cfd4646bbad160e3f48a94e.png

一、钟表实现原理

钟表的实现需要设置定时器,定时器每隔一秒发送timeout()信号到QWidget::update()槽函数,update()槽函数将会重绘一次窗口,重写重绘事件函数paintEvent(QPaintEvent *event),根据获取的当前系统时间的时钟、分钟、秒钟重绘钟表的时针、分针、秒针。

QTimer *timer = new QTimer(this);

timer->start(1000);//一秒钟

connect(timer,SIGNAL(timeout()),this,SLOT(update()));

setWindowTitle("The Clock");

二、钟表的界面绘制

钟表由时针、分针、秒针、刻度盘组成,绘制时针、分针、秒针、刻度盘刻度线需要翻转坐标系,因此在绘制前需要先保存当前的坐标系状态,对坐标系进行翻转需要的角度后绘制图形,绘制完成后需要恢复坐标系的状态。

1、时针绘制

确定组成时针的四个点,使用drawConvexPolygon函数绘制出四边形时针。

const QPoint Clock::hourHand[4] = {

QPoint(3, 5),

QPoint(0, 13),

QPoint(-3, 5),

QPoint(0, -40)

};

QPainter painter(this);

painter.setBrush(Qt::black);

painter.setPen(Qt::black);

painter.drawConvexPolygon(hourHand,4);//绘制时针

2、分针绘制

确定组成分针的四个点,使用drawConvexPolygon函数绘制出四边形分针。

const QPoint Clock::minuteHand[4] = {

QPoint(3, 5),

QPoint(0, 16),

QPoint(-3, 5),

QPoint(0, -70)

};

QPainter painter(this);

painter.setBrush(Qt::black);

painter.setPen(Qt::black);

pa

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值