我有一个图形场景和视图,然后我添加了一个元素。但无论我给出的x / y坐标是什么,它总是出现在图形视图的中心。
为什么会发生这种情况,如何让它出现在左上角?
这是我的代码:
scene = new QGraphicsScene(this);
ui->graphicsView->setScene(scene);
QGraphicsEllipseItem *ellipseItem = scene->addEllipse(150, 150, 10, 10);
答案 0 :(得分:1)
您可能想要定义QGraphicsView显示的场景矩形。我认为默认视图只显示当前场景的居中边界矩形,它只是你的椭圆。您可以使用QGraphicsView :: fitInView来定义要显式显示的区域。
答案 1 :(得分:1)
原因是默认情况下,QGraphicsScene
通过将所有项目矩形添加在一起来计算其sceneRect
。添加第一个项目时,它会自动将其用作场景矩形。默认情况下,QGraphicsView
会在场景矩形上进行缩放和居中。
如果您知道最终或所需的场景矩形,请在添加任何项目之前进行设置:
scene->setSceneRect(0, 0, 800, 600);
scene->addEllipse(150, 150, 10, 10);