36 lines
776 B
C++
36 lines
776 B
C++
#pragma once
|
|
|
|
#include <QWidget>
|
|
#include <QTimer>
|
|
#include <QColor>
|
|
#include <QTime>
|
|
|
|
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; // 闪烁持续时间(毫秒)
|
|
};
|