如何获取 pg.infiniteLine 已在 pyqtgraph 中移动的事件

Posted

技术标签:

【中文标题】如何获取 pg.infiniteLine 已在 pyqtgraph 中移动的事件【英文标题】:How to get an event pg.infiniteLine has moved in pyqtgraph 【发布时间】:2021-09-04 19:05:37 【问题描述】:

在pyqtgraph中,当v_bar = pg.InfiniteLine(angle=90, movable=True)被鼠标移动时,有什么方法可以获取事件? 我使用像v_bar.evt.connect(update)这样的事件@

【问题讨论】:

【参考方案1】:

您可以使用 sigDragged 信号作为the docs 指出:

from pyqtgraph.Qt import QtGui, QtCore
import numpy as np
import pyqtgraph as pg


app = pg.mkQApp()
win = pg.GraphicsLayoutWidget()
win.resize(1000, 600)
win.show()

plot = win.addPlot(y=np.random.normal(size=100, scale=10))

v_bar = pg.InfiniteLine(movable=True, angle=90)
plot.addItem(v_bar)


def handle_sig_dragged(obj):
    assert obj is v_bar
    print(obj.value())


v_bar.sigDragged.connect(handle_sig_dragged)

app.exec_()

【讨论】:

以上是关于如何获取 pg.infiniteLine 已在 pyqtgraph 中移动的事件的主要内容,如果未能解决你的问题,请参考以下文章

如何检测函数是不是已在本地定义?

如果替代已在 scs.ttest_ind() 中编码为上 1 尾测试,我是不是需要将 p 值除以 2?

确定是不是存在生物识别硬件以及用户是不是已在 Android P 上注册生物识别

如何让 SQL Python 查找用户名是不是已在数据库中?

获取已在 OpenLayers 3 中单击的图层的特征属性

导入已在单一类型导入中定义