6

每当我向 a 添加新项目时QGraphicsSceneQGraphicsScene我刚刚添加的项目的位置似乎都会改变。

如何使QGraphicsScene原点固定?

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

4

3 回答 3

4

好吧,默认情况下,场景的内容将以QGraphicsView. 图形场景的原点不会随机变化。

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

于 2013-01-01T18:46:59.200 回答
3

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

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

同上什么坏猫。

有很多控件可用于调整或操纵指向场景的视口。场景设置了舞台上的东西。视图就是你看待它的方式。确保使用or或or从类sceneRect间接设置 or 设置它。centerOnfitInViewscaletranslateQGraphicsView

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

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

于 2013-01-01T23:36:57.223 回答
1

QGraphicsScene::setSceneRect ( const QRectF & rect ) 将使其成为绝对值。

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

于 2013-01-01T18:47:46.140 回答