自定义组件_滚动横幅&弹窗&对话框&字体图标等
自定义组件_圆弧进度条
自定义组件_水波进度条
自定义组件_多彩仪表盘
自定义组件_通用仪表盘
仓库
个性
- 可设置范畴
- 可设置开始旋转角度、完结旋转角度
- 可设置适度动画时常
- 可设置仪表盘题目
- 可设置背景、进度条、值、题目色彩
- 自适应窗体拉伸,文字主动缩放
#ifndef ARCPROGRESSBAR_H#define ARCPROGRESSBAR_H#include <QWidget>#include <QColor>#include <QString>#include <QPropertyAnimation>/* 圆弧进度条自定义控件 实现的性能 * 1. 可设置范畴 * 2. 可设置开始旋转角度、完结旋转角度 * 3. 可设置适度动画时常 * 4. 可设置仪表盘题目 * 5. 可设置背景、进度条、值、题目色彩 * 6. 自适应窗体拉伸,文字主动缩放 */class ArcProgressBar : public QWidget{ Q_OBJECT Q_PROPERTY(QColor arcColor READ getArcColor WRITE setArcColor) Q_PROPERTY(QColor baseColor READ getBaseColor WRITE setBaseColor) Q_PROPERTY(QColor textColor READ getTextColor WRITE setTextColor) Q_PROPERTY(QColor titleColor READ getTitleColor WRITE setTitleColor) Q_PROPERTY(QString title READ getTitle WRITE setTitle) Q_PROPERTY(int minValue READ getMinValue WRITE setMinValue) Q_PROPERTY(int maxValue READ getMaxValue WRITE setMaxValue) Q_PROPERTY(int value READ getValue WRITE setValue) Q_PROPERTY(int animationStepTime READ getAnimationStepTime WRITE setAnimationStepTime) Q_PROPERTY(int startAngle READ getStartAngle WRITE setStartAngle) Q_PROPERTY(int endAngle READ getEndAngle WRITE setEndAngle) Q_PROPERTY(int curValue READ getCurValue WRITE updateValue)public: explicit ArcProgressBar(QWidget *parent = nullptr); ~ArcProgressBar(); QColor getArcColor() const; QColor getBaseColor() const; QColor getTextColor() const; QColor getTitleColor() const; QString getTitle() const; int getMinValue() const; int getMaxValue() const; int getValue() const; int getStartAngle() const; int getEndAngle() const; int getAnimationStepTime() const;public slots: void setArcColor(const QColor &color); // 设置圆弧色彩 void setBaseColor(const QColor &color); // 设置根底色彩 void setTextColor(const QColor &color); // 设置文本色彩 void setTitleColor(const QColor &color); // 设置题目色彩 void setTitle(const QString &title); // 设置Title void setRange(int minValue, int maxValue); // 设置范畴值 void setMinValue(int minValue); // 设置最小值 void setMaxValue(int maxValue); // 设置最大值 void setValue(int value); // 设置目标值 void setAngleRange(int startAngle, int endAngle); // 设施旋转角度范畴 void setStartAngle(int startAngle); // 设置开始旋转角度 void setEndAngle(int endAngle); // 设置完结旋转角度 void setAnimationStepTime(int msec); // 设置每刻度动画持续时间protected: void paintEvent(QPaintEvent *event) override; void drawArc(QPainter *painter); void drawValue(QPainter *painter); void drawTitle(QPainter *painter); void updateValue(int value); int getCurValue() const;signals:private: double m_radius = 0.0; QColor m_arcColor = QColor(34,163,169); QColor m_baseColor = QColor(180,180,180); QColor m_textColor = QColor(34,163,169); QColor m_titleColor = QColor(Qt::black); QString m_title = "正确率"; int m_startAngle = 45; int m_endAngle = 315; int m_maxValue = 100; int m_minValue = 0; int m_curValue = 0; int m_value = 0; QPropertyAnimation m_animation; int m_animationStepTime = 5; QEasingCurve::Type m_easingCurveType = QEasingCurve::Linear;};#endif // ARCPROGRESSBAR_H