Creo un utente QGraphicsItem
. E sovrascrivere lo boundingRect()
e paint()
.qual è il qtransform in 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);
}
Quindi utilizzare addItem()
per aggiungere un elemento a una scena. Ora voglio ottenerlo dalla scena dalla sua posizione. Trovo la funzione itemAt
. Ma il problema è che non so quale sia lo const QTransform
& deviceTransform
. Cosa dovrei usare per lo QTransform
?.
Perché non ho implementato alcuna trasformazione nello QGraphicsItem
. Questo mi confonde.
mente però che un QGraphicsScene può avere più di una vista. Quindi il valore di 'deviceTransform' dipende dal contesto. Ad esempio, in un gestore di eventi del mouse dovresti capire da quale vista proviene l'evento. Vedi [questo commento] (http://stackoverflow.com/questions/16919819/itemat-not-returning-custom-qgraphicsitem#comment24426364_16921083). –