lan*_*llx 12 c++ qt qgraphicsitem qgraphicsscene
我创建了一个自定义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);
}
Run Code Online (Sandbox Code Playgroud)
然后我用来addItem()向场景添加一个项目.现在我想通过它的位置从现场得到它.我找到了这个itemAt功能.但问题是我不知道const QTransform&是什么deviceTransform.我该QTransform怎么用?
因为我没有实现任何变换QGraphicsItem.这让我很困惑.
QGraphicsItem * QGraphicsScene::itemAt ( const QPointF & position, const QTransform & deviceTransform ) const
Run Code Online (Sandbox Code Playgroud)
返回指定位置上最上面可见的项目;如果此位置上没有项目,则返回0。
deviceTransform是应用于视图的转换,如果场景包含忽略转换的项目,则需要提供该转换。此功能在Qt 4.6中引入。
所以我想说,如果您需要转换某些项目而忽略其他项目,则可以简单地使用默认值QTransform()或更好QGraphicsView::transform() const。
太久了
| 归档时间: |
|
| 查看次数: |
7173 次 |
| 最近记录: |