123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- #ifndef NAVPROGRESS_H
- #define NAVPROGRESS_H
- #include <QWidget>
- #include <QPainter>
- #include <QPen>
- #include <QFont>
- #include <QRect>
- #include <QString>
- #include <QVector>
- #include <QVBoxLayout>
- #include <QPushButton>
- #include <QApplication>
- #include <QDebug>
- #include <QTimer>
- // 定义导航样式枚举
- enum NavStyle {
- NavStyle_JD,
- };
- class NavProgress : public QWidget {
- Q_OBJECT
- public:
- NavProgress(QWidget *parent = nullptr);
- // 设置导航样式
- void setNavStyle(NavStyle style);
- // 设置最大步骤数
- void setMaxStep(int step);
- // 设置顶部信息
- void setTopInfo(const QVector<QString>& info);
- // 设置第一个圆为绿色
- void setFirstCircleGreen(bool green);
- // 开始或停止第一个空心圆闪烁
- void setFirstCircleBlinking(bool blinking);
- // 获取每个圆的颜色
- QVector<QColor> getCircleColors();
- // 设置状态
- void setState(int newState);
- protected:
- void paintEvent(QPaintEvent *) override;
- void drawBg_JD(QPainter *painter);
- void drawText_JD(QPainter *painter);
- // 其他样式的绘制函数,这里简单占位
- // void drawCurrentBg_JD(QPainter *painter);
- // void drawCurrentText_JD(QPainter *painter);
- private slots:
- void toggleBlinkColors();
- private:
- NavStyle navStyle;
- int maxStep;
- int state;
- QColor background;
- QColor foreground;
- QVector<QString> topInfo;
- bool firstCircleGreen;
- bool firstCircleBlinking;
- bool secondCircleBlinking;
- bool secondCircleGreen;
- bool thridCircleBlinking;
- bool thridCircleGreen;
- QColor blinkColor;
- QColor secondBlinkColor;
- QTimer *blinkTimer;
- };
- #endif // NAVPROGRESS_H
|