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

PyQt6中PlotWidget上的QGraphicsRectItem是否支持内置鼠标拖拽功能?

在PlotWidget中拖动QGraphicsRectItem的实现方法
  • 不需要从头构建鼠标事件,QGraphicsRectItem本身支持通过设置标志位实现拖拽功能,核心是使用setFlag()方法开启QGraphicsItem.ItemIsMovable标志:
from pyqtgraph import PlotWidget, QtGui
import sys

app = QtGui.QApplication(sys.argv)
plot = PlotWidget()
plot.show()

# 创建矩形项
rect_item = QtGui.QGraphicsRectItem(0, 0, 50, 50)
# 开启可拖动标志
rect_item.setFlag(QtGui.QGraphicsItem.ItemIsMovable, True)
# 可选:开启位置变化通知(用于后续自定义限制逻辑)
rect_item.setFlag(QtGui.QGraphicsItem.ItemSendsGeometryChanges, True)

plot.addItem(rect_item)

sys.exit(app.exec_())
  • 补充说明:
    • 如果需要限制拖动范围(比如只能在PlotWidget可视区域内),可以重写itemChange()方法拦截位置变化,自定义边界限制逻辑。
    • 若PlotWidget的默认交互(如缩放、平移)和拖动操作冲突,可通过plot.setMouseEnabled(x=False, y=False)禁用对应方向的交互,或给矩形项设置更高的交互优先级。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 00:02:35