Что такое qtransform в QGraphicsScene:: itemAt()
Я создаю пользовательский 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
. Это меня смущает.
Ответы
Ответ 1
QGraphicsItem * QGraphicsScene::itemAt ( const QPointF & position, const QTransform & deviceTransform ) const
Возвращает самый верхний видимый элемент в указанной позиции или 0, если на этой позиции нет предметов. deviceTransform
- это преобразование, которое применяется к представлению, и должно быть обеспечено, если сцена содержит элементы, которые игнорируют преобразования. Эта функция был введен в Qt 4.6.
Итак, я бы сказал, если вам нужно преобразовать некоторые элементы и игнорировать остальные, вы можете просто пойти со значением по умолчанию QTransform()
или даже лучше QGraphicsView::transform() const
.
soo long zai