在 QGraphicsView 中移动项目

发布于 2024-11-27 16:06:15 字数 280 浏览 1 评论 0原文

总的来说,我对 Qt 很陌生,尤其是 QGraphicsView。当我在其中旋转 Qgraphicspixmapitem 时,它似乎也在移动。我发现这与 QGraphicsView 调整以保持场景可见有关。 我删除了滚动条,因为我不需要它们,并且我希望场景的部分内容在 QGraphicsView 不更改其视图的情况下退出视图。换句话说,我希望 QGraphicsView 中的所有内容都具有绝对位置,并且我不希望 QGraphicsView 改变其视点(或无论其名称如何,请纠正我)术语)。

I am new to Qt in general and QGraphicsView in particular. When I rotate a Qgraphicspixmapitem in it, it appears to move also. I have figured out that this has something to do with the QGraphicsView adjusting to keep the scene in view.
I have removed the scroll bars because I don't need them and I want parts of the scene to go out of view without the QGraphicsView changing its view. In other words, I want everything in my QGraphicsView to have absolute positions and I don't want the QGraphicsView to change its viewpoint (or whatever its called, do correct me on the terminologies).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

铃予 2024-12-04 16:06:15

您需要的功能是 QGraphicsView::setSceneRect

此属性保存此视图可视化的场景区域。
场景矩形定义场景的范围,在视图的情况下,这意味着您可以使用滚动条导航的场景区域。
如果未设置,或者设置了 null QRectF,则该属性与 QGraphicsScene::sceneRect 具有相同的值,并且随 QGraphicsScene::sceneRect 变化。否则,视图的场景矩形不受场景影响。

因此,将视图的 sceneRect 设置为视图中所需场景的矩形,一切都应该很好。

The function you need is QGraphicsView::setSceneRect :

This property holds the area of the scene visualized by this view.
The scene rectangle defines the extent of the scene, and in the view's case, this means the area of the scene that you can navigate using the scroll bars.
If unset, or if a null QRectF is set, this property has the same value as QGraphicsScene::sceneRect, and it changes with QGraphicsScene::sceneRect. Otherwise, the view's scene rect is unaffected by the scene.

So, set the sceneRect for your view to the rectangle of the scene that you want in the view, and all should be good.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文