QT中提供的控件是有限的,当不能满足我们的需求的时候便可以利用2D绘图,绘画出自己所需要的控件及图形,当然还可以用来绘制文本及图片,QT的绘图由QPainter类来完成,在这里我新建项目的时候选择不使用QT中的视图框架来完成绘制一个炫酷的时钟。
1:常用函数
drawArc() 弧
drawChord() 弦
drawPixmap() 图像
drawPoint() 点
drawPoints() 多个点
drawPolygon()多边形
drawPolyline() 多折线
drawRect() 矩形
drawRects() 多个矩形
drawRoundRect() 圆角矩形
drawText() 文字
drawTiledPixmap() 平铺图像
drawLineSegments() 绘制折线
drawConvexPolygon() 凸多边形
drawEllipse() 椭圆,
drawImage() 图像
drawLine() 线
drawLines() 多条线
drawPath() 路径;
drawPicture() 按QPainter指令绘制 区分drawImage、drawPixmap
drawPie() 扇形
2:头文件
绘图中主要用到画笔和画刷:画笔的作用是写和划线之类的操作而画刷的作用是为了把某一区域进行涂色。
3:重写画图事件函数:
里面主要包含时,分,秒的转动
void paintEvent(QPaintEvent *event);//重写绘图事件
4:时针(度数为负的问题)
5:分针
6:时针
注:度数为何为负
因为时钟顺时钟选择的话,相对于一处来看的话,数字是从大到小的方式变化,但逆时针的话数字便会从小到大变化。
效果图: