自定义组件_滚动横幅&弹窗&对话框&字体图标等
自定义组件_圆弧进度条
自定义组件_水波进度条
自定义组件_多彩仪表盘
自定义组件_通用仪表盘


仓库

个性
  • 可设置范畴
  • 可设置开始旋转角度、完结旋转角度
  • 可设置适度动画时常
  • 可设置仪表盘题目
  • 可设置背景、进度条、值、题目色彩
  • 自适应窗体拉伸,文字主动缩放
#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