#pragma once #include "WindowAppBlockStandardBase.h" /// /// 标准类型的工具功能块图 (Standard Block Diagram) /// class WindowAppBlockStandard : public WindowAppBlockStandardBase { Q_OBJECT // 添加这一行,否则会出现警告:Warning: qobject_cast to QGraphicsItem will not work! Q_INTERFACES(QGraphicsItem) public: // bShowOnly 是否仅供展示使用,展示使用的话不提供右键菜单以及其他互动功能 WindowAppBlockStandard(TOOL* pTool, POU* Pou, bool bShowOnly = false, QGraphicsObject* parent = nullptr); // 设定本Item的自定义类型 enum { Type = ITEM_TYPE_STANDARD }; int type() const { // 针对该 item 启用 qgraphicsitem_cast return Type; } public: // 添加接口(Standard工具需要额外添加ToolStart接口) virtual void addItemInterfaces(); //// 添加ToolStart接口 //void addItemTopInterface(); // // 2022-3-10 根据Dll中的信息动态添加接口 bool addDynamicInterfacesFromDll(const QList& infList, QString& strReason); // 2022-3-11 根据Dll中的信息动态删除接口 bool deleteDynamicInterfacesFromDll(const QList& infList, QString& strReason); // // // 更新Block的相关位置和尺寸 // void updatePosition(); // protected: // 双击弹出工具dll中的对话框 void mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event); };