QT 绘制电池

低功耗蓝牙项目,需要一块懂省电的板

思澈 SF32LB52 芯片,BLE 协议栈深度优化,上手即开发

绘制上下结构的电池

#ifndef QMYBATTERY_H
#define QMYBATTERY_H

#include <QObject>
#include <QWidget>
#include <QColor>

class qMyBattery : public QWidget
{
    Q_OBJECT
private:
    QColor  mColorBack=Qt::white;//背景颜色
    QColor  mColorBorder=Qt::black;//电池边框颜色
    QColor  mColorPower=Qt::green;//电量柱颜色
    QColor  mColorWarning=Qt::red;//电量短缺时的颜色
    QColor  mDefineColor = QColor::fromRgb(24, 222, 166);
    QColor  mColorYellow = Qt::yellow;//黄色

    int mPowerLevel=60;//电量0-100
    int mWarnLevel=20;//电量低警示阈值
protected:
    void    paintEvent(QPaintEvent *event) Q_DECL_OVERRIDE;
public:
    explicit qMyBattery(QWidget *parent = 0);

    // void    setPowerLevel(int pow);//设置当前电量
    // int     powerLevel();

    // void    setWarnLevel(int warn);//设置电量低阈值
    // int     warnLevel();

    // QSize   sizeHint();//报告缺省大小
signals:
    // void  powerLevelChanged(int );
};

#endif // QMYBATTERY_H
 

#include "qmybattery.h"
#include <QPainter>
#include <QFont>

qMyBattery::qMyBattery(QWidget *parent) : QWidget(parent)
{

}

void qMyBattery::paintEvent(QPaintEvent *event)
{
    Q_UNUSED(event);
    QPainter    painter(this);
    QRect rect(0,0,width(),height()); //viewport矩形区
    painter.setViewport(rect);//设置Viewport
    painter.setWindow(0,0,31,110); // 设置窗口大小,逻辑坐标
    painter.setRenderHint(QPainter::Antialiasing);
    painter.setRenderHint(QPainter::TextAntialiasing);

    QPen    pen;//设置画笔
    pen.setWidth(1); //线宽
    pen.setColor(mDefineColor); //划线颜色
    pen.setStyle(Qt::SolidLine);//线的类型,实线、虚线等
    pen.setCapStyle(Qt::FlatCap);//线端点样式
    pen.setJoinStyle(Qt::BevelJoin);//线的连接点样式
    painter.setPen(pen);

    QBrush  brush;//设置画刷
    brush.setColor(mDefineColor); //画刷颜色
    brush.setStyle(Qt::SolidPattern);
    painter.setBrush(brush);
    rect.setRect(11,0,8,4);
    painter.drawRect(rect);

    brush.setColor(mDefineColor); //画刷颜色
    brush.setStyle(Qt::SolidPattern); //画刷填充样式
    painter.setBrush(brush);
    rect.setRect(5,6,20,65);
    painter.drawRect(rect);//绘制电池边框

}
 



只是完成了基本绘制,后面会完善一下电量条的绘制功能

目前的代码,拖一个QWdget的控件,然后右键提升成这个类,就可以看到效果了

低功耗蓝牙项目,需要一块懂省电的板

思澈 SF32LB52 芯片,BLE 协议栈深度优化,上手即开发

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值