情况如下:
- 有两个类同时继承
QGraphicsItem
和QObject
-Car
和Bike
。 - 每个类都有几个对象使用
QGraphicsScene myScene
. - 在某些时候,两个对象被选中并且可以通过
myScene.selectedItems()
- 为交互
Car - Car
,Bike - Bike
,定义了不同的行为Bike - Car
。
由于QGraphicsItem
不继承自我QObject
无法metaObject()->className()
在以下期间调用项目:
foreach(QGraphicsItem* item,this->scene.selectedItems())
{
item->metaObject()->className(); --error 'class QGraphicsItem' has no member named 'metaObject'
}
可以使用QGraphicsItem::data
,但需要setData(...)
在创建对象时设置执行它。
问:有什么方法可以获取selectedItems
列表中存在哪些对象的信息(理想情况下使用className()
),以便使用正确的交互功能?