【问题标题】:How to disable the default context menu of pyqtgraph?如何禁用 pyqtgraph 的默认上下文菜单?
【发布时间】:2017-11-08 04:50:43
【问题描述】:

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

【问题讨论】:

    标签: python pyqtgraph


    【解决方案1】:

    使用PlotItem.setMenuEnabled 方法。比如:

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

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

    【讨论】:

      【解决方案2】:

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

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

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

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

      • QAction 中的任何一个都可以被QAction.setVisible() (Qt reference) 隐藏/显示

      【讨论】:

        【解决方案3】:

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

        删除导出...选项在这里找到: Export... (contextMenu)

        我刚刚清除了列表:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-11-13
          • 2019-01-24
          • 1970-01-01
          • 1970-01-01
          • 2012-05-06
          • 2019-11-21
          • 2019-08-20
          • 1970-01-01
          相关资源
          最近更新 更多