gpt4 book ai didi

qt - QGraphicsScene::itemAt() - 如何识别自定义类

转载 作者:行者123 更新时间:2023-12-04 06:38:39 25 4
gpt4 key购买 nike

我有个小问题

我正在编写 Petri Net 模拟器...

我有两个不同的类(class)

    class PNItem : public QObject, public QGraphicsItem
...

    class PNEdge : public QGraphicsLineItem

当我打电话时...

    QGraphicsItem *QGraphicsScene::ItemAt(//cursor position)

,有没有可能以某种方式了解我点击了什么项目?分别ItemAt 给了什么元素?

最佳答案

GraphicsItem::type()旨在解决这个问题。

所以你会做这样的事情,例如:

enum ItemType { TypePNItem = QGraphicsItem::UserType + 1,
TypePNEdge = QGraphicsItem::UserType + 2 }

class PNItem : public QObject, public QGraphicsItem {

public:
int type() { return TypePNItem; }
...

};

这将允许您这样做:

QGraphicsItem *item = scene->itemAt( x, y );
switch( item->type() )
{
case PNItem:
...
break;
}

这样做还可以使用 qgraphicsitem_cast

另请参阅:QGraphicsItem::UserType

关于qt - QGraphicsScene::itemAt() - 如何识别自定义类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10114812/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com