【发布时间】:2017-11-08 04:50:43
【问题描述】:
谁能帮我禁用 pyqtgraph 的上下文菜单或从中删除一些选项?
【问题讨论】:
谁能帮我禁用 pyqtgraph 的上下文菜单或从中删除一些选项?
【问题讨论】:
使用PlotItem.setMenuEnabled 方法。比如:
self.plot = pg.PlotItem()
self.plot.setMenuEnabled(False)
我还没有找到从中删除选项的方法,但也许这是可能的。我也会对此感兴趣。
【讨论】:
我自己一直在研究这个,这就是我发现的(截至 2021 年 5 月)。作为参考,下图是 PyQtGraph PlotWidget 出现的右键菜单,但并非所有项目(QActions)都是由 PlotWidget 本身添加的。
分隔符上方的菜单项由 ViewBox 菜单(源代码here)创建,可通过PlotItem.vb 或PlotItem.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) 隐藏/显示
【讨论】:
找到了一种编辑和删除选项的方法,请查看: ViewBoxMenu
删除导出...选项在这里找到: Export... (contextMenu)
我刚刚清除了列表:
export = self.gui.Display.ui.graphicsView.sceneObj.contextMenu
del export[:]
【讨论】: