WindowAppUiView.h 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. #pragma once
  2. #include "Common.h"
  3. #include "WindowAppUiScene.h"
  4. class WindowAppUiNavView;
  5. class WindowAppUiFrame;
  6. class WindowAppUiView : public QGraphicsView
  7. {
  8. Q_OBJECT
  9. public:
  10. WindowAppUiView(QWidget *parent);
  11. ~WindowAppUiView();
  12. // 初始化
  13. void init(const QString& strTitle,
  14. WindowAppUiNavView* navView,
  15. WindowAppUiFrame* parentFrame,
  16. ObjectController* objectController
  17. );
  18. // 获取本View对应的Scene指针
  19. WindowAppUiScene* uiScene()
  20. {
  21. return m_pUiScene;
  22. }
  23. //// 更新用户设定的尺寸
  24. //void updateUiSize(int nWidth, int nHeight);
  25. //// dll中的控件同步消息
  26. //void controlSync(QWidget* pWidget, UI_SYNC_MSG msg);
  27. // 删除所有控件
  28. // 序列化
  29. friend QDataStream& operator<<(QDataStream& out, WindowAppUiView* pView);
  30. // 反序列化
  31. friend QDataStream& operator>>(QDataStream& in, WindowAppUiView* pView);
  32. // 本UI页面的名称
  33. QString m_strPageName;
  34. // 背景中对齐方格的尺寸
  35. int m_nGridSize;
  36. protected slots:
  37. // 绘制界面背景
  38. void drawBackground(QPainter* painter, const QRectF& rect) override;
  39. // 当控件拖动时
  40. void dropEvent(QDropEvent* event) override;
  41. //// 当控件正在拖动过程中
  42. //void dragEnterEvent(QDragEnterEvent* event) override;
  43. // 拖拽动作处理
  44. void dragMoveEvent(QDragMoveEvent* event) override;
  45. //=========================================================
  46. // 用于绘制橡皮筋区域
  47. void mousePressEvent(QMouseEvent*);
  48. void mouseMoveEvent(QMouseEvent*);
  49. void mouseReleaseEvent(QMouseEvent*);
  50. //// 过滤子控件消息
  51. //bool eventFilter(QObject* object, QEvent* event) override;
  52. // 尺寸改变后,同步调整Scene的尺寸
  53. void resizeEvent(QResizeEvent* resizeEvent) override;
  54. signals:
  55. // 用于和缩略图同步的信号
  56. void navigatorViewRequired(bool required, QTransform transform);
  57. protected:
  58. // 初始化方格背景
  59. void initBkImage();
  60. protected:
  61. // 绘图的场景类
  62. WindowAppUiScene* m_pUiScene;
  63. // 黑白方格背景图
  64. QPixmap* m_pBkImage;
  65. QRubberBand* m_pRubberBand;
  66. QPoint m_tmpPoint;
  67. // 加入了本View归属的UiFrame(主要用于反序列化)
  68. WindowAppUiFrame* m_parentFrame;
  69. };