#include "Common.h"
///
/// 用于显示Pou界面的鸟瞰图
///
class WindowAppPouNavView : public QGraphicsView
{
Q_OBJECT
public:
WindowAppPouNavView(QWidget *parent = nullptr);
// 绑定对应的视图
void setMainView(QGraphicsView *mainView);
// 设置透明度
void setOpacity(qreal opacity, bool animated = true);
public slots:
// 刷新界面(暂未使用)
void updateMainViewportRegion();
private:
void mousePressEvent(QMouseEvent * event) override;
void mouseMoveEvent(QMouseEvent * event) override;
void mouseReleaseEvent(QMouseEvent * event) override;
void wheelEvent(QWheelEvent *event) override;
void paintEvent(QPaintEvent *event) override;
private:
// 初始化界面风格
void initStyle();
private:
bool m_mouseDown = false;
QPolygon m_viewportRegion;
QGraphicsView * m_mainView = nullptr;
///
/// 用于辅助设定透明渐变效果的类(内部类)
///
class OpacityHelper : QObject
{
public:
OpacityHelper(QWidget* parent);
void setOpacity(qreal opacity, bool animated = true);
protected:
// 窗体透明效果
QGraphicsOpacityEffect* m_opacityFx;
// 透明的动画效果
QPropertyAnimation* m_opacityAnimation;
};
OpacityHelper* m_opacityHelper = nullptr;
};