如下:

绘制步骤如下:
1、先绘制波浪状的QPainterPath ,即sin曲线

2、通过定时器不停的更新sin曲线的初始相位来呈现波动的效果
3、然后绘制中间的圆
4、然后绘制中间的文本
5、然后再在第一步之前给QPainter设置可见区域,把这个圆的范围设置为可见区域,这样多余的蓝色就不显示了
.h文件
#ifndef WAVEPROGRESSBAR_H
#define WAVEPROGRESSBAR_H
#include <QWidget>
#include<QPainter>
#include<QTimer>
class WaveProgressBar : public QWidget
{
Q_OBJECT
Q_PROPERTY(int max READ max WRITE setMax NOTIFY maxChanged FINAL)
Q_PROPERTY(int min READ min WRITE setMin NOTIFY minChanged FINAL)
Q_PROPERTY(int value READ value WRITE setValue NOTIFY valueChanged FINAL)
public:
explicit WaveProgressBar(QWidget *parent = nullptr);
int max() const;
void s

最低0.47元/天 解锁文章
173

被折叠的 条评论
为什么被折叠?



