我创建了一个自定义的QGraphicsItem
并重写了boundingRect()
和paint()
方法。
QRectF myTile::boundingRect() const
{
return QRectF(xPos*10, yPos*10, 10, 10);
}
void myTile::paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
{
QRectF rec = boundingRect();
int gvi = value * 255;
QColor gv(gvi, gvi, gvi, 255);
QBrush brush(gv);
painter->fillRect(rec, brush);
painter->drawRect(rec);
}
然后我使用 addItem()
向场景中添加一个项。现在我想通过其位置从场景中获取该项。我找到了 itemAt
函数。但问题是我不知道 const QTransform
& deviceTransform
是什么。我应该用什么来替代 QTransform
?
因为我没有在 QGraphicsItem
中实现任何变换,这让我感到困惑。
deviceTransform
的值取决于上下文。例如,在鼠标事件处理程序中,您需要确定事件来自哪个视图。请参见此评论。 - Martin Hennings