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

时间:2017-06-07 02:12:36

标签: python pyqtgraph

任何人都可以帮我禁用pyqtgraph的上下文菜单或从中删除一些选项吗?

3 个答案:

答案 0 :(得分:2)

使用PlotItem.setMenuEnabled方法。类似的东西:

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

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

答案 1 :(得分:1)

找到了一种编辑方式。删除选项,检查出来: ViewBoxMenu

删除导出...选项位于此处: Export... (contextMenu)

我刚刚清除了清单:

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

答案 2 :(得分:1)

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

PlotWidget right click menu

  • 分隔符上方的菜单项由 ViewBox 菜单(源代码 here)创建,可以通过 PlotItem.vbPlotItem.getViewBox()(如果您有 {{ 1}},您可以通过 PlotWidget 获得 PlotItem)。菜单项 (PlotWidget.getPlotItem()s) 可以通过 QAction(Qt 参考 here)访问,并且可以通过检查 PlotItem.vb.menu.actions() 以找到 QAction.text()想要更改或删除。

  • QAction(源代码 here)创建一个名为 PlotItem 的菜单,其中包含绘图选项(例如变换、下采样)。这是上图中的“绘图选项”子菜单,不会出现在 ctrlMenu 中,但可以通过 PlotItem.vb.menu.actions() (StackOverflow reference) 访问。

  • “Export...”选项来自底层 PlotItem.ctrlMenu.menuAction()(源代码 here),可以通过 GraphicsScene 访问,它给出了“Export... " QAction。

  • 任何 ViewBox.scene().contextMenu[0] 都可以被 QAction (Qt reference) 隐藏/显示