Qt QGraphicsScene origin point

Qt QGraphicsScene origin point

本文关键字:point origin QGraphicsScene Qt      更新时间:2023-10-16

每当我向QGraphicsScene添加新项目时,QGraphicsScene的原点似乎会随着我刚刚添加的项目的位置而改变。

如何使QGraphicsScene原产地固定?

我是否需要先在 QGraphicsScene 中添加项目,然后再指定项目的位置?

好吧,默认情况下,场景的内容将在QGraphicsView中居中。图形场景的原点不会随机更改。

您可能希望使用 setSceneRect() 来定义场景的大小,以便QGraphicsView始终以固定的方式在视图中居中场景。(如果不手动设置,将根据场景中的项目计算矩形,如果添加更多项目,矩形会发生变化。

大约一年前,我回答了一个相关的问题,可能会有所帮助:

如何在QGraphicsScene上绘制一个点(鼠标点击)?

同上,什么坏猫。

有很多控件用于调整或操作指向场景的视口。 场景设置了舞台上的内容。 视图是你如何看待它。 请务必使用QGraphicsView类中的centerOnfitInViewscaletranslate来设置sceneRect或间接设置。

http://qt-project.org/doc/qt-4.8/graphicsview.html

http://qt-project.org/doc/qt-4.8/qgraphicsview.html

QGraphicsScene::setSceneRect ( const QRectF & rect ) 将使其绝对化。

见 http://doc.qt.digia.com/qt/qgraphicsscene.html#sceneRect-prop