Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在点击鼠标的位置绘制和填充PyQtGraph绘图中的矩形_Python_Pyqt5_Rectangles_Pyqtgraph - Fatal编程技术网

Python 如何在点击鼠标的位置绘制和填充PyQtGraph绘图中的矩形

Python 如何在点击鼠标的位置绘制和填充PyQtGraph绘图中的矩形,python,pyqt5,rectangles,pyqtgraph,Python,Pyqt5,Rectangles,Pyqtgraph,我正在使用PyQt5和PyQtGraph。我简化了下面的示例代码。然后,每次在单击鼠标的位置单击鼠标时,我想在绘图视图中绘制一个小的红色矩形,从而在绘图视图中累积几个红色矩形。下面的代码有一个#???注释,我需要一些代码帮助来绘制红色矩形 您可以做的是创建一个空散点图项目并将其添加到self.qPlotWidget。然后在mousrClickedEvent中,您可以将鼠标位置添加到此散点图项目的点列表中,即 class MainWindow(QtWidgets.QMainWindow):

我正在使用PyQt5和PyQtGraph。我简化了下面的示例代码。然后,每次在单击鼠标的位置单击鼠标时,我想在绘图视图中绘制一个小的红色矩形,从而在绘图视图中累积几个红色矩形。下面的代码有一个#???注释,我需要一些代码帮助来绘制红色矩形


您可以做的是创建一个空散点图项目并将其添加到
self.qPlotWidget
。然后在
mousrClickedEvent
中,您可以将鼠标位置添加到此散点图项目的点列表中,即

class MainWindow(QtWidgets.QMainWindow):
    def __init__(self, parent=None):
        .... as before ....

        # add empty scatter plot item with a red brush and a square as the symbol to plot widget
        brush = pg.mkBrush(color=(255,0,0))
        self.scatterItem = pg.ScatterPlotItem(pen=None, size=10, brush=brush, symbol='s')
        self.qPlotWidget.addItem(self.scatterItem)


    def mouseClickedEvent(self, event):
        pos = event.scenePos()
        if (self.qPlotWidget.sceneBoundingRect().contains(pos)):
            mousePoint = self.qPlotWidget.plotItem.vb.mapSceneToView(pos)

            # add point to scatter item
            self.scatterItem.addPoints([mousePoint.x()], [mousePoint.y()])

您可以做的是创建一个空散点图项目并将其添加到
self.qPlotWidget
。然后在
mousrClickedEvent
中,您可以将鼠标位置添加到此散点图项目的点列表中,即

class MainWindow(QtWidgets.QMainWindow):
    def __init__(self, parent=None):
        .... as before ....

        # add empty scatter plot item with a red brush and a square as the symbol to plot widget
        brush = pg.mkBrush(color=(255,0,0))
        self.scatterItem = pg.ScatterPlotItem(pen=None, size=10, brush=brush, symbol='s')
        self.qPlotWidget.addItem(self.scatterItem)


    def mouseClickedEvent(self, event):
        pos = event.scenePos()
        if (self.qPlotWidget.sceneBoundingRect().contains(pos)):
            mousePoint = self.qPlotWidget.plotItem.vb.mapSceneToView(pos)

            # add point to scatter item
            self.scatterItem.addPoints([mousePoint.x()], [mousePoint.y()])