WindowAppPouView.h 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. #pragma once
  2. #include "Common.h"
  3. #include "CommonDraw.h"
  4. /// <summary>
  5. /// Pou的组件容器子界面
  6. /// </summary>
  7. class WindowAppPouScene;
  8. class POU;
  9. class WindowAppPouView : public QGraphicsView
  10. {
  11. Q_OBJECT
  12. public:
  13. explicit WindowAppPouView(QWidget* parent = nullptr);
  14. // 初始化
  15. void initView(const QString& strGroup, QWidget* pParent);
  16. // 获取 Scene
  17. WindowAppPouScene* getScene()
  18. {
  19. return m_pPouScene;
  20. }
  21. //// 直接添加Tool功能块(from序列化文件)
  22. //void addToolDirectly(TOOL* newTool, QPointF pos);
  23. //// 在界面中添加新的Link(from序列化文件)
  24. //void addLinkDirectly(const QString& strStartInf, const QString& strEndInf, LINK_MODE linkMode);
  25. protected slots:
  26. // 在拖拽事件中获取拖动进来的工具信息
  27. void dropEvent(QDropEvent* event) override;
  28. // 拖拽动作处理
  29. void dragMoveEvent(QDragMoveEvent* event) override;
  30. // 绘制界面背景
  31. void drawBackground(QPainter* painter, const QRectF& rect) override;
  32. // 自动缩放
  33. void resizeEvent(QResizeEvent* resizeEvent) override;
  34. // 缩放时同步调整缩略图
  35. void slotZoom(int);
  36. signals:
  37. // 用于和缩略图同步的信号
  38. void navigatorViewRequired(bool required, QTransform transform);
  39. //// 缩略图当前矩形区域变动时的同步信号
  40. void viewportRectChanged();
  41. private:
  42. // 初始化方格背景
  43. void initBkImage();
  44. // 初始化与缩放相关的操作
  45. void initZoom();
  46. private:
  47. // 绘图的场景类
  48. WindowAppPouScene* m_pPouScene;
  49. // 黑白方格背景图
  50. QPixmap* m_pBkImage;
  51. protected:
  52. // 当前的缩放比例
  53. qreal m_fZoom;
  54. // 缩放比例显示的
  55. QLabel* m_pZooomLabel;
  56. };