自定义组件_滚动横幅 & 弹窗 & 对话框 & 字体图标等
自定义组件_圆弧进度条
自定义组件_水波进度条
自定义组件_多彩仪表盘
自定义组件_通用仪表盘
仓库
个性
- 可设置范畴
- 可设置开始旋转角度、完结旋转角度
- 可设置适度动画时常
- 可设置仪表盘题目
- 可设置背景、进度条、值、题目色彩
- 自适应窗体拉伸,文字主动缩放
#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