You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PySide6中视图缩放时QGraphicsRectItem不随缩放的解决方法

解决QGraphicsRectItem不随视图缩放的问题

你只需要给目标QGraphicsRectItem设置ItemIgnoresTransformations标志,就能让它忽略视图的缩放变换,保持原始大小。

具体操作

创建矩形项后,调用setFlag()方法开启该标志即可:

from PySide6.QtWidgets import QGraphicsRectItem, QGraphicsScene

# 创建矩形项
rect_item = QGraphicsRectItem(100, 100, 50, 50)
# 设置忽略变换的标志
rect_item.setFlag(QGraphicsRectItem.ItemIgnoresTransformations, True)
# 添加到场景
scene = QGraphicsScene()
scene.addItem(rect_item)

原理说明

ItemIgnoresTransformations标志会让图形项不受视图的变换矩阵(缩放、旋转等)影响。不管你通过wheelEvent怎么缩放视图,这个矩形项都会保持初始化时的尺寸,不会跟着放大或缩小。

注意:设置该标志后,矩形项的位置仍基于场景坐标,视图平移时它会跟着场景移动。如果需要让它固定在视图的某个屏幕位置(比如右上角),可以额外监听视图的resizeEvent和滚动事件,手动更新item的场景坐标来匹配屏幕位置。

内容的提问来源于stack exchange,提问作者Min

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 14:57:08