VS2022环境下Qt框架绘制静态仪表盘

前言

仪表盘作为常见控件,作为Qt入门练习是一个不错的选择,文章主要记录基本思路、各种方法的作用和具体参数,以及实战中遇到的bug以及解决方法。

一、头文件

头文件扩展名为.h,包含函数声明和宏定义,编写C++程序的时候,将常量,宏,全局变量和函数原型写入头文件,方便随时调用。因此在头文件中引入需要用到的QPainter图形绘制类,QtMath通用数学函数。

头文件包含关键字如下:

paintEvent(QPaintEvent*):QWidget类中的虚函数,可以在子类中被重写来接收绘图事件,然后在指定区域完成图形的绘制。

qreal:Qt框架作为跨平台开发框架,qreal关键字与常用的double和float区别不大,使用qreal关键字的主要原因如下:

1.跨平台一致性:Qt通过使用qreal确保不同平台上数值计算的精度和性能保持一致

2.代码可读性:增加代码可读性和可维护性

3.兼容性:通过qreal定义能保证未来数值类型的兼容性

二、主文件

仪表盘由背景圆形,刻度线,指针,仪表文字四部分组成,由于组成简单,可写函数方法也可不写函数方法。

进行QPainter,Qpoint类的初始化。

QPainter painter(this)

QPoint center

主文件包含类和方法如下:

QPainter类

setRenderHints():防止图形走样,防止“锯齿”现象的出现。

具体参数意思如下:

QPainter::Antialiasing              告诉绘图引擎应该在可能的情况下进行边的反锯齿绘制
QPainter::TextAntialiasing       尽可能的情况下文字的反锯齿绘制
QPainter::`SmoothPixmapTransform`  使用平滑的pixmap变换算法(双线性插值算法),而不是近邻插值算

translate():实现对坐标原点的重新定义,参数为x坐标,y坐标。
setPen():设置画笔

参数如下:

setPen(Qt::颜色, 粗细(px);

setBrush():设置画刷状态

painter.setBrush(QColor(142, 142, 142));通过QColor调整颜色,可以使用RGB或者特定颜色。

drawEllipse():绘制椭圆或圆

drawEllipse(圆心坐标点, 横向半径, 竖向半径);

rotate:实现对图形的旋转

rotate(旋转的角度,正数为顺时针方向)

drawLine():绘制一条直线

drawLine(点1坐标, 点2坐标)

restore():恢复QPainter画笔状态
drawRoundedRect():绘制圆角矩形

drawRoundedRect(rect矩形,竖边弧度,横边弧度)

drawText():在指定矩形中写入格式化文本

drawText(rect矩形, 字符串)

drawPolygon():绘制不规则多边形

drawPolygon(多边形顶点)

QPoint类

使用整数精度定义平面中的一个点

QPointF:float型 QPoint

QFontMetrics类

提供关于字体的指标信息

QRect类

使用整数精度在平面上定义一个矩形

三、实战中遇到的问题和注意事项

1.初始化类对象

QPainter painter(this);

2.下载Force utf8插件,并在需要输出的汉字前加入u8申明。

QString title = u8"仪表盘";


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值