Tworzę niestandardowy QGraphicsItem
. Zastąp także boundingRect()
i paint()
.co to jest qtransform w QGraphicsScene :: itemAt()
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);
}
Następnie używam addItem()
, aby dodać element do sceny. Teraz chcę dostać to ze sceny przez jego pozycję. Znajduję funkcję itemAt
. Ale problem polega na tym, że nie wiem, co to jest const QTransform
& deviceTransform
. Co powinienem użyć dla QTransform
?
Ponieważ nie zaimplementowałem żadnej transformacji w QGraphicsItem
. To mnie myli.
Pamiętaj, że QGraphicsScene może mieć więcej niż jeden widok. Tak więc wartość 'deviceTransform' zależy od kontekstu. Na przykład w programie obsługi zdarzeń myszy trzeba się dowiedzieć, z którego widoku pochodzi wydarzenie. Zobacz [ten komentarz] (http://stackoverflow.com/questions/16919819/itemat-not-returning-custom-qgraphicsitem#comment24426364_16921083). –