如何在GUI应用程序中的PyQtGraph中等待鼠标交互时返回值

2024-05-23 18:17:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在pyqtgraph中使用一条随着鼠标移动的无限线。单击鼠标左键后,函数将返回xposition。我可以通过鼠标左键点击并移动无限线来检索x值。然而,我只是停留在返回x位置。我想等待左键单击,因为我想重复这个过程多次。你知道吗

def addVerticalLineAndGetXOnClick(self):
    def changePosVertLine(event):
        if self.sceneBoundingRect().contains(event):
            mousePoint = self.plotItem.vb.mapSceneToView(event)
            line.setPos(mousePoint.x())
    def onMouseClick(event):
        if event.button() == 1:
            self.removeItem(line)
            self.scene().sigMouseClicked.disconnect()
            self.setMouseTracking(False)
            mousePoint = self.plotItem.vb.mapSceneToView(event.scenePos())
            self.xPos.emit(mousePoint.x())
    penLin = mkPen(color = '#000000', width = 1)
    line = LRI(0.,pen = penLin, name= 'singleLineToGetXPos' )
    self.addItem(line)
    self.setMouseTracking(True)
    self.scene().sigMouseMoved.connect(changePosVertLine)
    self.scene().sigMouseClicked.connect(onMouseClick)
    #wait to return after mouse click and return
    """???"""


Tags: selfeventifdefline鼠标scene左键