使用鼠标

时间:2019-05-15 07:09:26

标签: python pyqtgraph

我正在使用pyqtgraph,它具有使用鼠标滚轮的开箱即用的缩放行为。但是,对于我的应用程序,我只需要在x或y方向上缩放即可。

我希望执行以下操作:

  • 检测鼠标单击的开始位置:x1,y1
  • 在x或y方向上拖动鼠标,然后释放鼠标。
  • 检测鼠标单击释放位置:x2,y2
  • 计算dx = x2-x1和dy = y2-y1
  • 如果dx> dy,则仅将图的x限制更新为[x1,x2]。
  • 如果dy> dx,则仅将图的y限制更新为[y1,y2]。

在pyqtgraph中解决此问题的最佳方法是什么?

1 个答案:

答案 0 :(得分:2)

您可以使用setMouseEnabled()。从文档中:

setMouseEnabled(x=None, y=None)
  

设置是否为每个轴启用鼠标交互。 x,y参数必须为True或False。这样,用户可以平移/缩放视图的一个轴,而另一轴保持不变。

例如

import pyqtgraph as pg

plot_widget = pg.PlotWidget() 
plot_widget.plotItem.setMouseEnabled(y=False) # Only allow zoom in X-axis
plot_widget.plotItem.setMouseEnabled(x=False) # Only allow zoom in Y-axis

仅X轴(左),仅Y轴(右)