#pragma once #include #include #include #include class QBreathingLight : public QWidget { Q_OBJECT public: explicit QBreathingLight(QWidget *parent = nullptr); // 设置闪烁参数 void setFlashDuration(int milliseconds); // 设置闪烁总持续时间 void setFlashColor(const QColor &color); // 设置闪烁颜色 public slots: void triggerSignal(); // 触发信号,开始闪烁 protected: void paintEvent(QPaintEvent *event) override; private slots: void updateAnimation(); private: float m_opacity; // 当前透明度 bool m_isFlashing; // 是否正在闪烁 QTimer m_animationTimer; // 动画定时器 QColor m_flashColor; // 闪烁颜色 QTime m_flashStartTime; // 闪烁开始时间 int m_flashDuration; // 闪烁持续时间(毫秒) };