如何禁用pyqtgraph的默认上下文菜单?

How to disable the default context menu of pyqtgraph?

谁能帮我禁用 pyqtgraph 的上下文菜单或从中删除一些选项?

使用PlotItem.setMenuEnabled方法。类似于:

    self.plot = pg.PlotItem()
    self.plot.setMenuEnabled(False)

我还没有找到从中删除选项的方法,但也许有可能。我也会对此感兴趣。

找到了一种编辑和删除选项的方法,检查一下: ViewBoxMenu

删除导出...选项可在此处找到: Export... (contextMenu)

我刚刚清除了列表:

export = self.gui.Display.ui.graphicsView.sceneObj.contextMenu
del export[:]

我自己一直在研究这个,这是我发现的(截至 2021 年 5 月)。作为参考,下图是 PyQtGraph PlotWidget 出现的右键单击菜单,但并非所有项目 (QActions) 都是由 PlotWidget 本身添加的。

  • 分隔符上方的菜单项由ViewBox菜单(源代码here) which can be accessed through PlotItem.vb or PlotItem.getViewBox() (if you have a PlotWidget, you can get the PlotItem through PlotWidget.getPlotItem()). The menu items (QActions) can be accessed through PlotItem.vb.menu.actions() (Qt reference here)创建,可以通过勾选QAction.text()找到QAction 你想更改或删除。

  • PlotItem(源码here) creates a menu called ctrlMenu, which contains the plot options (e.g. Transform, Downsample). This is the "Plot Options" submenu in the image above, and does not appear in the PlotItem.vb.menu.actions() but can be accessed via PlotItem.ctrlMenu.menuAction() (Whosebug reference).

  • “导出...”选项来自底层 GraphicsScene(源代码 here),可以通过 ViewBox.scene().contextMenu[0] 访问,它给出了“导出..." QAction.

  • 任何 QAction 都可以 hidden/shown by QAction.setVisible() (Qt reference)