123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- #include "Common.h"
- /// <summary>
- /// 用于显示Pou界面的鸟瞰图
- /// </summary>
- 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;
- /// <summary>
- /// 用于辅助设定透明渐变效果的类(内部类)
- /// </summary>
- 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;
- };
|