WindowAppBlockStandard.h 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #pragma once
  2. #include "WindowAppBlockStandardBase.h"
  3. /// <summary>
  4. /// 标准类型的工具功能块图 (Standard Block Diagram)
  5. /// </summary>
  6. class WindowAppBlockStandard : public WindowAppBlockStandardBase
  7. {
  8. Q_OBJECT
  9. // 添加这一行,否则会出现警告:Warning: qobject_cast to QGraphicsItem will not work!
  10. Q_INTERFACES(QGraphicsItem)
  11. public:
  12. // bShowOnly 是否仅供展示使用,展示使用的话不提供右键菜单以及其他互动功能
  13. WindowAppBlockStandard(TOOL* pTool, POU* Pou, bool bShowOnly = false, QGraphicsObject* parent = nullptr);
  14. // 设定本Item的自定义类型
  15. enum { Type = ITEM_TYPE_STANDARD };
  16. int type() const
  17. {
  18. // 针对该 item 启用 qgraphicsitem_cast
  19. return Type;
  20. }
  21. public:
  22. // 添加接口(Standard工具需要额外添加ToolStart接口)
  23. virtual void addItemInterfaces();
  24. //// 添加ToolStart接口
  25. //void addItemTopInterface();
  26. //
  27. // 2022-3-10 根据Dll中的信息动态添加接口
  28. bool addDynamicInterfacesFromDll(const QList<DLL_INF>& infList, QString& strReason);
  29. // 2022-3-11 根据Dll中的信息动态删除接口
  30. bool deleteDynamicInterfacesFromDll(const QList<DLL_INF>& infList, QString& strReason);
  31. //
  32. // // 更新Block的相关位置和尺寸
  33. // void updatePosition();
  34. //
  35. protected:
  36. // 双击弹出工具dll中的对话框
  37. void mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event);
  38. };