#ifndef NAVPROGRESS_H #define NAVPROGRESS_H #include #include #include #include #include #include #include #include #include #include #include #include // 定义导航样式枚举 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& info); // 设置第一个圆为绿色 void setFirstCircleGreen(bool green); // 开始或停止第一个空心圆闪烁 void setFirstCircleBlinking(bool blinking); // 获取每个圆的颜色 QVector 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 topInfo; bool firstCircleGreen; bool firstCircleBlinking; bool secondCircleBlinking; bool secondCircleGreen; bool thridCircleBlinking; bool thridCircleGreen; QColor blinkColor; QColor secondBlinkColor; QTimer *blinkTimer; }; #endif // NAVPROGRESS_H