我将QGraphicsItem子类化为自己的自定义类Hexagon。当我尝试使用如QGraphicsView :: itemAt或QGraphicsScene :: itemAt之类的函数时,它不会返回我的Hexagon对象,因为该函数实际上寻找的是QGraphicsItems。
我该如何告诉它查找Hexagon对象?或者我需要更改Hexagon类中的某些内容吗?甚至重新实现itemAt()?
目前,我还在子类化QGraphicsView,特别是mousePressedEvent以获取有关所单击的Hexagon对象的一些信息。
但是,当我尝试编译时,出现了以下错误:
无效的从'QGraphicsItem*'到'Hexagon*'的转换
我想要的是能够获取被单击的
我该如何告诉它查找Hexagon对象?或者我需要更改Hexagon类中的某些内容吗?甚至重新实现itemAt()?
目前,我还在子类化QGraphicsView,特别是mousePressedEvent以获取有关所单击的Hexagon对象的一些信息。
void LatticeView::mousePressEvent(QMouseEvent *event)
{
Hexagon *hexagon = itemAt(event->pos());
...
}
但是,当我尝试编译时,出现了以下错误:
无效的从'QGraphicsItem*'到'Hexagon*'的转换
我想要的是能够获取被单击的
Hexagon
对象,这样我就可以访问一些在Hexagon
类中定义的变量,这些变量在QGraphicsItem
类中不是隐含的。
itemAt()
是返回 null 还是一个值? - Arnold Spence