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