Code example. I don't guarantee that copy-paste will work as It is only a
part of my whole code, but it should give you some tips and ideas.

import pyqtgraph as pg

class MyCustomPlotContextMenu(pg.ViewBox):
    """Subclass of ViewBox.
    """

    def __init__(self parent=None):
        """Constructor of the QVizCustomPlotContextMenu

        super(MyCustomPlotContextMenu, self).__init__(parent)

        # Set original plot context menu
        # Note: self.menu must not be None (this way works fine for plotWidgets,
        # but not for GraphicsWindow)
        self.menu = pg.ViewBoxMenu.ViewBoxMenu(self)

        # Menu update property
        self.menuUpdate = True

    def getMenu(self, event=None):
        """Modify the menu. Called by the pyqtgraph.ViewBox raiseContextMenu()
        routine.
        Note: Overwriting the ViewBox.py getMenu() function.
        """

        if self.menuUpdate is True:
            # Modify contents of the original ViewBoxMenu
            for action in self.menu.actions():
                # Modify the original Mouse Mode
                if "Mouse Mode" in action.text():
                    # Change action labels
                    for mouseAction in self.menu.leftMenu.actions():
                        if "3 button" in mouseAction.text():
                            mouseAction.setText("CustomLabel1")
                        elif "1 button" in mouseAction.text():
                            mouseAction.setText("CustomLabel2")

            # Add custom contents to menu
            self.addCustomToMenu()

            # Set menu update to false
            self.menuUpdate = False

        return self.menu

    def addCustomToMenu(self):
        """Add custom actions to the menu.
        """
        self.menu.addSeparator()
        # Autorange feature
        self.actionAutoRange = QAction("Auto Range", self.menu)
        self.actionAutoRange.triggered.connect(self.autoRange)
        # - Add to main menu
        self.menu.addAction(self.actionAutoRange)

        # - Add to main menu
        self.menu.addAction(self.actionConfigurePlot)

To set your custom contextMenu as default one, you have to set it as a
'viewBox' argument

Example:

myPlotWidget = pg.PlotWidget(parent, viewBox=MyCustomPlotContextMenu)


On Tue, 4 Dec 2018 at 13:55, Duan Yi <[email protected]> wrote:

> How can I disable/customize the functions of the right-click menu in
> pyqtgraph? Much appreciated.
>
> --
> You received this message because you are subscribed to the Google Groups
> "pyqtgraph" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/pyqtgraph/fcc0849e-de76-43f9-8b9d-c06b7ecdfe69%40googlegroups.com
> <https://groups.google.com/d/msgid/pyqtgraph/fcc0849e-de76-43f9-8b9d-c06b7ecdfe69%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"pyqtgraph" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/pyqtgraph/CALiCEadtmpQWruXRxhFvWKR85gTWzV_A3w_XX5YnJH346X76cA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to