qt 控件坐标系_Qt编写自定义控件21-圆弧仪表盘

这篇博客介绍了如何在Qt中使用drawArc方法绘制圆弧仪表盘,包括背景透明处理、坐标缩放技巧,以及实现的多种功能,如范围值设置、精度控制、颜色配置等。同时,控件具备自适应窗体拉伸和字体自动缩放能力,提供多种样式选择,并支持动画效果。
摘要由CSDN通过智能技术生成

一、前言

圆弧仪表盘在整个自定义控件大全中也稍微遇到了技术难点,比如背景透明,如果采用以前画圆形画扇形的方式绘制,肯定很难形成背景透明,需要用到切割,最后换了一种绘制方法,采用绘制圆弧的方式,即使用drawArc方法,这个方法有个注意点就是值要*16,我也一直没有搞懂为什么要*16,帮助文档也是这么写的,那就按照帮助文档来吧,具体也就没有深究下去。

在用qpainter绘制准备工作中,如果先将绘制坐标的中心点移动到区域的中心,painter.translate(width / 2, height / 2); 然后对坐标系进行宽高风向的缩放200倍,painter.scale(side / 200.0, side / 200.0);这样的方式绘制出来,只要指定了半径或者字体指定了大小,以后都是会根据这个标准自动缩放的,这样就做到了自适应任何大小字体自动变化,我也是突然之间发现的这个巧妙的用法。

二、实现的功能

* 1:可设置范围值,支持负数值

* 2:可设置精确度,最大支持小数点后3位

* 3:可设置大刻度数量/小刻度数量

* 4:可设置开始旋转角度/结束旋转角度

* 5:可设置是否启用动画效果以及动画效果每次移动的步长

* 6:可设置外圆背景/内圆背景/饼圆三种颜色/刻度尺颜色/文字颜色

* 7:自适应窗体拉伸,刻度尺和文字自动缩放

* 8:可自由拓展各种渐变色,各圆的半径

* 9:指示器样式可选择 圆形指示器 指针指示器 圆角指针指示器 三角形指示器

三、效果图

0df7db39649b5cf7f29a0f8d1cfdc86d.gif
f05e455fa2ad0eaf0c1914beb3568948.png
24d630d97789037b53bd2cbe9b290c4b.png

五、核心代码

void GaugeArc::paintEvent(QPaintEvent *){ int width = this->width(); int height = this->height(); int side = qMin(width, height); //绘制准备工作,启用反锯齿,平移坐标轴中心,等比例缩放 QPainter painter(this); painter.setRenderHints(QPainter::Antialiasing | QPainter::TextAntialiasing); painter.translate(width / 2, height / 2);  pai
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值