|
- #ifndef ITEM_H
- #define ITEM_H
-
- #include <QGraphicsObject>
- #include <QColor>
- #include <QList>
- #include <QAction>
-
- class Connection;
-
- class Item : public QGraphicsObject
- {
- Q_OBJECT
- public:
- enum AnchorType { Left, Right };
- explicit Item(const QString &type, QGraphicsItem *parent = nullptr);
-
- QRectF boundingRect() const override;
- QPointF anchorPos(AnchorType type) const;
- void addConnection(Connection* conn);
- void removeConnection(Connection* conn);
- QList<Connection*> connections();
- QString itemType();
- virtual void MenuActions(QMenu *menu); // 添加基本菜单项
- virtual void addMenuActions(QMenu *menu); // 添加额外菜单项
- virtual void handleMenuAction(QAction *action); // 处理菜单动作
-
- signals:
- void requestCopy(Item*);
- void requestDelete(Item*);
-
- protected:
- QVariant itemChange(GraphicsItemChange change, const QVariant &value) override;
- void contextMenuEvent(QGraphicsSceneContextMenuEvent *event) override;
- QString type_;
- QList<Connection*> connections_;
- };
-
- #endif // ITEM_H
|