代码之家  ›  专栏  ›  技术社区  ›  fengwt

pyqtgraph:当我点击PlotItem时,我如何知道哪个项目被点击了

  •  0
  • fengwt  · 技术社区  · 11 年前

    我不知道我的方法是否正确,但它有效。

    class PltItem(pg.PlotItem):
    
        pltClicked = Signal()
    
        def __init__(self, parent = None):
            super(PltItem, self).__init__(parent)
    
        def mousePressEvent(self, ev):
            super(PltItem, self).mousePressEvent(ev)
            self.pltClicked.emit()
    

    我使用的主窗口中的

    for i, plt in enumerate(self.plts):
        self.connect(plt, SIGNAL("pltClicked()"), partial(self.selectplot, i))
    
    def selectplot(self, i):
        ...
    
    1 回复  |  直到 11 年前
        1
  •  2
  •   Luke    11 年前

    你的解决方案很好。另一个解决方案是连接到GraphicsScene.sigMouseClickd信号并使用 QGraphicsScene.items() 以确定PlotItem(或任何其他项目)是否处于单击之下。