从鼠标设置QGraphicsScene的小部件坐标

时间:2015-02-26 14:29:29

标签: qt user-interface

我有一个图形场景和一个视图,

myScene = new QGraphicsScene(this);
ui->graphicsView->setScene(myScene);
..
myWidget = new QGraphicsWidget();

我想将我的wdget放在我的鼠标所在的位置,即:

myWidget->setPos(ui->graphicsView->mapFromGlobal(QCursor::pos()));

我的意思是,我不想继承我的QGraphicsScene或ui-> graphicsView。我只想将鼠标位置传递给我的Widget。然而,上面的行不会把它放在光标下面,我想知道为什么!?

我可以将光标位置映射到场景坐标吗?

1 个答案:

答案 0 :(得分:0)

答案是:

QPoint viewPoint = ui->graphicsView->mapFromGlobal(QCursor::pos());
QPointF scenePoint = ui->graphicsView->mapToScene(viewPoint);
myWidget->setPos(scenePoint);