#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; };