Files
QTradeProgram/QMainwindow/QBreathingLight.h
2025-08-22 10:59:38 +08:00

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; // 闪烁持续时间(毫秒)
};