Qt圆形仪表盘绘制(线)(三)

本文介绍了如何在Widget中根据项目需求绘制线,通过枚举和QPainter实现线段连接,并能根据线号动态改变颜色。项目基于屏幕自适应,提供setLinecolor函数设置线条颜色。由于涉及商业机密,未提供完整代码,鼓励交流讨论。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

这篇是讲解在widget里绘制线的内容,为啥会和仪表盘扯到一起,因为博主的项目中刚好是这些东西放一起的所以就写一起了

效果图

在这里插入图片描述
中间的黑线就是了,为啥不截整个界面呢,问就是公司机密,赔不起

实现

因为项目要求哪里联通哪里亮起所以呢这线也进行了枚举的方式

struct Line_Color
{
    QColor line_col  = QColor(0,0,0);
};
enum LineNum{
    line1 = 1,
    line2 = 2,
    line3  = 3,
    line4  = 4,
    line5 = 5,
    line6 =6,
};

由于确切的只要6线所以就写了给画线的函数

void Widget::drawLine(LineNum num, QPainter &p, QPoint start, QPoint end)
{
    p.setRenderHint(QPainter::Antialiasing);
    p.setPen(QPen(m_LineColor[num].line_col, 5));
    p.drawLine(start,end);
}

参数也很简单(线的号码,画笔,起始点,终点)
函数里的5是画笔的粗细可以自己调
如何使用呢,拿中间最长的那一条来说,就是界面的最左边带最右边,起始位置(0,界面高的一半),终点(界面的宽,界面高的一半)

drawLine(line2,p,QPoint(0,height()/2),QPoint(width(),height()/2));

项目是根据屏幕自动全屏的,控件也自适应所以点位以控件来定,不然会乱,如果界面固定大小的直接就数字填入就好了
那如何改变颜色类
也专门写了一个函数使用

void Widget::setLinecolor(LineNum num, QColor lineColor)
{
    m_LineColor[num].line_col = lineColor;
    this->update();
}

函数使用:

setLinecolor(line2,QColor(127,255,0));

效果:
在这里插入图片描述
公司项目恕不能将完整代码贴上来,如有疑问可以私信留言
有其他方法也可交流学习

原创不易,一键三连

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值