每当我向QGraphicsScene
添加新项目时,QGraphicsScene
的原点似乎会根据我刚刚添加的项目位置而改变。
如何使QGraphicsScene
的原点固定?
我需要先在QGraphicsScene中添加项目,然后为项目指定位置吗?
默认情况下,场景的内容将在 QGraphicsView
中居中。图形场景的原点不会随机更改。
您可能希望使用 setSceneRect() 来定义场景的大小,这样 QGraphicsView
就可以始终以固定的方式将场景居中于视图中。(如果您没有手动设置它,矩形将根据场景中的项计算,如果添加更多项,则会更改。)
我大约一年前回答了一个相关的问题,可能会有所帮助:
如何在QGraphicsScene上绘制一个点(鼠标单击)?
同意badcat所说。
有很多控件可以调整或操作您指向场景的视口。场景设置了舞台上的内容,视图是您查看它的方式。请务必使用QGraphicsView
类中的sceneRect
或通过centerOn
、fitInView
、scale
或translate
间接设置它。
QGraphicsScene::setSceneRect ( const QRectF & rect ) 会使其变为绝对值。
请参见http://doc.qt.digia.com/qt/qgraphicsscene.html#sceneRect-prop
QGraphicsItem::setTransformOriginPoint()
。 - phyatt