如何获得GraphicsItem的场景位置?

时间:2018-11-28 09:58:27

标签: qgraphicsview coordinate-systems qgraphicsscene qgraphicsitem

我创建了QgraphicsView并设置了QGraphicscene。我在运行时将多个项目添加到场景中。我想从xml保存和加载场景。要获取我正在使用scenePos()函数的项目的项目坐标。第一次,当我移动项目时,它将给出正确的位置,它给出了错误的坐标。 为了获得正确的项目坐标,我该怎么做?

代码项添加到场景

QGraphicsView w;
QGraphicsScene scene ;
w.setScene(&scene);

QLabel *label = new QLabel("sagar") ;
QGraphicsRectItem *objHandle = new QGraphicsRectItem();
objHandle->setPos(50,50);
objHandle->setRect(50,50,100,100);
objHandle->setFlags(QGraphicsItem::ItemIsMovable | 
QGraphicsItem::ItemIsSelectable | QGraphicsItem::ItemIsFocusable);
scene.addItem(objHandle);

QGraphicsProxyWidget *proxy = new QGraphicsProxyWidget();
proxy->setWidget(label);
proxy->setParentItem(objHandle);

qDebug() << "scenePos" << objHandle->scenePos() ;
qDebug() << "pos" << objHandle->pos();
qDebug() << "rect" <<objHandle->rect().x()<<objHandle->rect().y() ;

0 个答案:

没有答案