如下:

步骤(重写paintEvent):
- 将painter移动到中心
- 确定半径为宽高中较小值的一半,防止缩放变形,优先填满较小的那一边
- 绘制底部圆
- 绘制中间的扇形,且画刷采用锥形渐变
- 最顶部的圆
- 绘制文字,且画在最中心
注:每一步都可以开放接口(这里就不加了)将参数暴漏出来,让外部使用者自己设置从而定制这个外观
头文件:
注:里面的set和get方法,还有Q_PPROPERTY都是qt自己加的,点击重构就可以添加
#ifndef ANNULARPROGRESSBAR_H
#define ANNULARPROGRESSBAR_H
#include <QObject>
#include <QWidget>
#include<QPainter>
//环形进度条
class AnnularProgressBar : public QWidget
{
Q_OBJECT
Q_PROPERTY(int value READ value WRITE setValue NOTIFY valueChanged FINAL)
Q_PROPERTY(int min READ min WRITE setMin NOTIFY minChanged FINAL)
Q_PROPERTY(int max READ max WRITE setMax NOTIFY maxChanged FINA

最低0.47元/天 解锁文章
5045

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



