#pragma once #include "Common.h" #include "CommonDraw.h" /// /// Pou的组件容器子界面 /// class WindowAppPouScene; class POU; class WindowAppPouView : public QGraphicsView { Q_OBJECT public: explicit WindowAppPouView(QWidget* parent = nullptr); // 初始化 void initView(const QString& strGroup, QWidget* pParent); // 获取 Scene WindowAppPouScene* getScene() { return m_pPouScene; } //// 直接添加Tool功能块(from序列化文件) //void addToolDirectly(TOOL* newTool, QPointF pos); //// 在界面中添加新的Link(from序列化文件) //void addLinkDirectly(const QString& strStartInf, const QString& strEndInf, LINK_MODE linkMode); protected slots: // 在拖拽事件中获取拖动进来的工具信息 void dropEvent(QDropEvent* event) override; // 拖拽动作处理 void dragMoveEvent(QDragMoveEvent* event) override; // 绘制界面背景 void drawBackground(QPainter* painter, const QRectF& rect) override; // 自动缩放 void resizeEvent(QResizeEvent* resizeEvent) override; // 缩放时同步调整缩略图 void slotZoom(int); signals: // 用于和缩略图同步的信号 void navigatorViewRequired(bool required, QTransform transform); //// 缩略图当前矩形区域变动时的同步信号 void viewportRectChanged(); private: // 初始化方格背景 void initBkImage(); // 初始化与缩放相关的操作 void initZoom(); private: // 绘图的场景类 WindowAppPouScene* m_pPouScene; // 黑白方格背景图 QPixmap* m_pBkImage; protected: // 当前的缩放比例 qreal m_fZoom; // 缩放比例显示的 QLabel* m_pZooomLabel; };