123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- #pragma once
- #include "WindowAppBlockBase.h"
- class WindowAppBlockComment : public WindowAppBlockBase
- {
- Q_OBJECT
- public:
- WindowAppBlockComment(
- TOOL* pNewTool,
- POU* Pou,
- bool bShowOnly = false,
- QGraphicsObject* parent = nullptr
- );
- ~WindowAppBlockComment();
- //// 设置注释的文字
- //void setComment(const QString& strComm);
- // 设定本Item的自定义类型
- enum { Type = ITEM_TYPE_COMMENT };
- int type() const override
- {
- return Type;
- }
- // 获取注释控件的文字内容
- QString content()
- {
- // 把Tool中的Info字段用来做Comment的注释
- return this->m_toolInfo->strInfo;
- }
- // 添加接口(虚函数,注释工具不需要添加接口)
- virtual void addItemInterfaces() {};
- protected slots:
- // 绘制注释控件边框
- void paint(QPainter* painter, const QStyleOptionGraphicsItem* option, QWidget* widget = nullptr) override;
- // 响应双击事件,弹出编辑内容对话框
- void mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event);
- // 计算区域边界
- QRectF boundingRect() const override;
- // 鼠标悬浮事件(用于显示拉伸用的鼠标)
- void hoverMoveEvent(QGraphicsSceneHoverEvent* event) override;
- // 鼠标按下事件(用于触发控件拉伸)
- void mousePressEvent(QGraphicsSceneMouseEvent* event) override;
- // 鼠标移动事件(用于拉伸控件)
- void mouseMoveEvent(QGraphicsSceneMouseEvent* event) override;
- // 鼠标释放事件(用于鼠标还原以及接收拉伸状态)
- void mouseReleaseEvent(QGraphicsSceneMouseEvent* event) override;
- // 菜单 - Delete
- void onMenuDelete();
- signals:
- // 内容为空信号,如果内容为空,则删除本注释控件
- void emptyContent(WindowAppBlockComment* item);
- protected:
- // 初始化UI风格
- void initStyle();
- // 绘制边框
- void drawFrame(QPainter* painter);
- // 绘制文字
- void drawContent(QPainter* painter);
- // 更新矩形区域的尺寸
- void updateRect();
- // 刷新全部(包括文字和尺寸)
- void updateAll();
- // 初始化功能块的右键菜单
- void createContextMenu();
- protected:
- // 控件的拉伸方向
- enum ResizeDirection
- {
- ResizeNone = 0,
- ResizeLeft = 1,
- ResizeRight = 2,
- ResizeTop = 4,
- ResizeBottom = 8,
- AllDirections = 15,
- };
- // 当前拉伸的方向
- quint32 reDirection;
- // 是否处于拉伸状态中
- bool isResizing;
- };
|