自定义组件_滚动横幅&弹窗&对话框&字体图标等
自定义组件_圆弧进度条
自定义组件_水波进度条
自定义组件_多彩仪表盘
自定义组件_通用仪表盘
仓库
个性
- 可设置范畴值
- 可设置起始角度
- 可设置水波密度,密度越大浪越大
- 可设置水波高度,高度越大浪越大
- 可设置是否显示进度条
- 可设置是否显示水纹
- 可设置进度色、水纹色、文字色
- 可设置进度条前进方向
#ifndef WAREPROGRESSBAR_H#define WAREPROGRESSBAR_H#include <QColor>#include <QString>#include <QTimer>#include <QWidget>/* 多彩仪表盘自定义控件 实现的性能 * 1. 可设置范畴值 * 2. 可设置起始角度 * 3. 可设置水波密度,密度越大浪越大 * 4. 可设置水波高度,高度越大浪越大 * 5. 可设置是否显示进度条 * 6. 可设置是否显示水纹 * 7. 可设置进度色、水纹色、文字色 * 8. 可设置进度条前进方向 */class WareProgressBar : public QWidget{ Q_OBJECT Q_PROPERTY(QColor outerCircleColor READ getPieCircleColor WRITE setPieCircleColor) Q_PROPERTY(QColor waterColor READ getwaterColor WRITE setwaterColor) Q_PROPERTY(QColor textColor READ getTextColor WRITE setTextColor) Q_PROPERTY(int pieStartAngle READ getPieStartAngle WRITE setPieStartAngle) Q_PROPERTY(int value READ getValue WRITE setValue) Q_PROPERTY(int maxValue READ getMaxValue WRITE setMaxValue) Q_PROPERTY(int minValue READ getMinValue WRITE setMinValue) Q_PROPERTY(int waveDensity READ getWaveDensity WRITE setWaveDensity) Q_PROPERTY(int waveHeight READ getWaveHeight WRITE setWaveHeight) Q_PROPERTY(QString suffixText READ getSuffixText WRITE setSuffixText) Q_PROPERTY(bool waveForwardOrientation READ getWaveIsForwardOrientation WRITE setWaveIsForwardOrientation) Q_PROPERTY(bool waterIsvisible READ getWaterIsvisible WRITE setWaterIsvisible) Q_PROPERTY(bool peiCircleIsvisible READ getPeiCircleIsvisible WRITE setPeiCircleIsvisible) Q_PROPERTY(bool peiForwardOrientation READ getPeiIsForwardOrientation WRITE setPeiIsForwardOrientation)public: explicit WareProgressBar(QWidget *parent = nullptr); ~WareProgressBar(); QColor getPieCircleColor() const; QColor getwaterColor() const; QColor getTextColor() const; int getPieStartAngle() const; int getValue() const; int getMaxValue() const; int getMinValue() const; int getWaveDensity() const; int getWaveHeight() const; QString getSuffixText() const; bool getWaveIsForwardOrientation() const; bool getWaterIsvisible() const; bool getPeiCircleIsvisible() const; bool getPeiIsForwardOrientation() const;public slots: void setPieCircleColor(const QColor &color); // 设置外圆色彩 void setwaterColor(const QColor &color); // 设置水色彩 void setTextColor(const QColor &color); // 设置文本色彩 void setPieStartAngle(int angle); // 设置饼图起始角度 void setValue(int value); // 设置开始值 void setRange(int minValue, int maxValue); // 设置范畴值 void setMaxValue(int value); // 设置最大值 void setMinValue(int value); // 设置最小值 void setWaveDensity(int density); // 设置水波密度 [0 - 10] void setWaveHeight(int height); // 设置水波高度 [0 - 10] void setSuffixText(const QString &text); // 设置提醒文本 void setWaveIsForwardOrientation(bool Orientation); // 设置水波方向 [true 正向; false 反向] void setWaterIsvisible(bool visible); // 设置水是否可见 void setPeiCircleIsvisible(bool visible); // 设置圆饼否可见 void setPeiIsForwardOrientation(bool Orientation); // 设置圆饼前进方向protected: void paintEvent(QPaintEvent *event) override; void drawPieCircel(QPainter *painter); void drawBackground(QPainter *painter); void drawWater(QPainter *painter); void drawText(QPainter *painter);private: double m_radius = 0.0; QColor m_peiCircleColor = QColor(100,184,255); QColor m_waterColor = QColor(100,184,255); QColor m_textColor = QColor(250,250,250); int m_pieStartAngle = 0; int m_value = 0; int m_maxValue = 100; int m_minValue = 0; int m_waveDensity = 1; int m_waveHeight = 5; bool m_waveForwardOrientation = true; QString m_suffixText = "%"; bool m_waterIsvisible = true; bool m_peiCircleIsvisible = true; bool m_peiForwardOrientation = true; double m_offset = 50; QTimer m_timer;};#endif // WAREPROGRESSBAR_H