每当我向QGraphicsScene
添加新项目时,QGraphicsScene
的来源似乎会改变我刚刚添加的项目的位置。
如何修复QGraphicsScene
来源?
我是否需要先在QGraphicsScene中添加项目,然后指定项目的位置?
答案 0 :(得分:4)
嗯,默认情况下,场景的内容将以QGraphicsView
为中心。图形场景的原点不会随机变化。
您可能希望使用setSceneRect()来定义场景的大小,以便QGraphicsView
始终以固定方式将场景置于视图中心。 (如果不手动设置,则将根据场景中的项目计算矩形,如果添加更多项目,则会更改。)
答案 1 :(得分:3)
我在一年前回答了一个可能有用的相关问题:
How to draw a point (on mouseclick) on a QGraphicsScene?
同样是什么badcat。
有很多控件可用于调整或操纵您指向场景的视口。场景设置舞台上的内容。视图就是你如何看待它的。请务必设置sceneRect
,或使用centerOn
类中的fitInView
或scale
或translate
或QGraphicsView
间接设置它。
答案 2 :(得分:1)
QGraphicsScene :: setSceneRect(const QRectF& rect)将使其绝对。
请参阅http://doc.qt.digia.com/qt/qgraphicsscene.html#sceneRect-prop