here i have a scene and a associated view ,then i hava a position in the scene coordinates.I want to set the center of the viewport with the position.How can i do it? I try
I used the following workaround:
QTransform old_transform = transform();
QRectF scene_rect = scene()->sceneRect();
QRectF new_scene_rect(scene_rect.x()-translation.x(),
scene_rect.y()-translation.y(),
scene_rect.width(),scene_rect.height());
scene()->setSceneRect(new_scene_rect);
setTransform(old_transform);
The transform part was necessary since otherwise it resets scaling.
This solution is essentially forcing it to change where it is allowed look at, which it is far from elegant.
I hope that somebody else comes up with a clean answer that allows to actually use the translate
method as intended.
Note that I use Qt 4.85, might be different with newer versions.