一、效果预览图
二、代码构造思路
QPainter绘制背景图、QLinearGradient构造颜色渐变对象、QPainterPath绘制渐变填充区域
三、代码片段
#define PROGRESSBAR_H
#include <QObject>
#include <QWidget>
#include <QProgressBar>
#include <QLabel>
#include <QPainter>
#include <QStyleOption>
#include <QTimer>
class ProgressBar : public QWidget
{
Q_OBJECT
public:
ProgressBar(QWidget *parent = nullptr);
void updateTxtPos(int value);
protected:
void paintEvent(QPaintEvent *event);
private:
QLabel *label;
int m_curValue;
int m_min;
int m_max;
};
#endif // PROGRESSBAR_H
#include "progressbar.h"
#include <QDebug>
ProgressBar::ProgressBar(QWidget *parent) : QWidget(parent)
{
m_curValue = 0;
label = new