dan*_*n_g 0 python pyqt pyqtgraph qmouseevent
我正在使用 PyQt 和 PyQtGraph 来构建一个相对简单的绘图 UI。作为其中的一部分,我有一个图形视图(pyqtgraph 的 graphicslayoutwidget),其中包含由用户动态添加的 PlotItem。
我想要实现的是允许用户通过双击它来选择一个 PlotItem。
如果用户在小部件窗口中的某处双击,这很简单,但我似乎无法弄清楚如何返回点击的内容。
我的大多数搜索结果都试图为某些按钮重新实现 mousePressEvent。我已经阅读了一些关于事件过滤器的内容,但我不确定这是否是必要的解决方案。
我不确定还有哪些其他信息可能有助于回答这个问题,所以如果不清楚我要问什么,请告诉我,以便我进行澄清。
编辑:
复制本:
一种策略是连接到GraphicsScene.sigMouseClicked场景,然后询问鼠标光标下有哪些项目。
这应该让你在那里的一部分:
import pyqtgraph as pg
w = pg.GraphicsWindow()
for i in range(4):
w.addPlot(0, i)
def onClick(event):
items = w.scene().items(event.scenePos())
print "Plots:", [x for x in items if isinstance(x, pg.PlotItem)]
w.scene().sigMouseClicked.connect(onClick)
Run Code Online (Sandbox Code Playgroud)