123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100 |
- #pragma once
- #include "Common.h"
- #include "WindowAppUiScene.h"
- class WindowAppUiNavView;
- class WindowAppUiFrame;
- class WindowAppUiView : public QGraphicsView
- {
- Q_OBJECT
- public:
- WindowAppUiView(QWidget *parent);
- ~WindowAppUiView();
- // 初始化
- void init(const QString& strTitle,
- WindowAppUiNavView* navView,
- WindowAppUiFrame* parentFrame,
- ObjectController* objectController
- );
- // 获取本View对应的Scene指针
- WindowAppUiScene* uiScene()
- {
- return m_pUiScene;
- }
- //// 更新用户设定的尺寸
- //void updateUiSize(int nWidth, int nHeight);
- //// dll中的控件同步消息
- //void controlSync(QWidget* pWidget, UI_SYNC_MSG msg);
- // 删除所有控件
- // 序列化
- friend QDataStream& operator<<(QDataStream& out, WindowAppUiView* pView);
- // 反序列化
- friend QDataStream& operator>>(QDataStream& in, WindowAppUiView* pView);
- // 本UI页面的名称
- QString m_strPageName;
- // 背景中对齐方格的尺寸
- int m_nGridSize;
- protected slots:
- // 绘制界面背景
- void drawBackground(QPainter* painter, const QRectF& rect) override;
- // 当控件拖动时
- void dropEvent(QDropEvent* event) override;
- //// 当控件正在拖动过程中
- //void dragEnterEvent(QDragEnterEvent* event) override;
- // 拖拽动作处理
- void dragMoveEvent(QDragMoveEvent* event) override;
- //=========================================================
- // 用于绘制橡皮筋区域
- void mousePressEvent(QMouseEvent*);
- void mouseMoveEvent(QMouseEvent*);
- void mouseReleaseEvent(QMouseEvent*);
- //// 过滤子控件消息
- //bool eventFilter(QObject* object, QEvent* event) override;
- // 尺寸改变后,同步调整Scene的尺寸
- void resizeEvent(QResizeEvent* resizeEvent) override;
- signals:
- // 用于和缩略图同步的信号
- void navigatorViewRequired(bool required, QTransform transform);
- protected:
- // 初始化方格背景
- void initBkImage();
- protected:
- // 绘图的场景类
- WindowAppUiScene* m_pUiScene;
- // 黑白方格背景图
- QPixmap* m_pBkImage;
- QRubberBand* m_pRubberBand;
- QPoint m_tmpPoint;
- // 加入了本View归属的UiFrame(主要用于反序列化)
- WindowAppUiFrame* m_parentFrame;
- };
|