1

我有一个图形场景和视图,然后我添加了一个元素。但无论我给出什么 x/y 坐标,它总是出现在图形视图的中心。

为什么会发生这种情况,我怎样才能让它出现在左上角?

这是我的代码:

scene = new QGraphicsScene(this);
ui->graphicsView->setScene(scene);
QGraphicsEllipseItem *ellipseItem = scene->addEllipse(150, 150, 10, 10);
4

2 回答 2

2

原因是默认情况下,通过将所有项目矩形相加来QGraphicsScene计算它。sceneRect添加第一项时,它会自动将其用作场景矩形。默认情况下QGraphicsView,在场景矩形上缩放和中心。

如果您知道最终或所需的场景矩形,请在添加任何项目之前对其进行设置:

scene->setSceneRect(0, 0, 800, 600);
scene->addEllipse(150, 150, 10, 10);
于 2012-08-06T13:46:46.110 回答
1

您可能想要定义由 QGraphicsView 显示的场景矩形。我认为默认视图只显示当前场景的居中边界矩形,这只是你的椭圆。您可以使用 QGraphicsView::fitInView 来定义要显式显示的区域。

于 2012-08-06T09:43:04.900 回答