Qt QGraphicsScene原点

时间:2013-01-01 18:38:06

标签: c++ qt

每当我向QGraphicsScene添加新项目时,QGraphicsScene的来源似乎会改变我刚刚添加的项目的位置。

如何修复QGraphicsScene来源?

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

3 个答案:

答案 0 :(得分:4)

嗯,默认情况下,场景的内容将以QGraphicsView为中心。图形场景的原点不会随机变化。

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

答案 1 :(得分:3)

我在一年前回答了一个可能有用的相关问题:

How to draw a point (on mouseclick) on a QGraphicsScene?

同样是什么badcat。

有很多控件可用于调整或操纵您指向场景的视口。场景设置舞台上的内容。视图就是你如何看待它的。请务必设置sceneRect,或使用centerOn类中的fitInViewscaletranslateQGraphicsView间接设置它。

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

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

答案 2 :(得分:1)

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

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