将项目/操作添加到 pyqtgraph PlotWidget 上下文菜单

问题描述 投票:0回答:1

我是 python 和 pyqt5/pyqtgraph 的新手。尝试使用下面的代码将操作/项目添加到 PlotWidget 的上下文菜单中。 New_Item 显示覆盖在上下文菜单中的“查看全部”项目的顶部 [有图片,但作为新用户,不允许发布它:-(] 而不是在它上面。我想我正在添加一个新的上下文菜单(而不是访问默认的上下文菜单并添加到其中)。我希望得到指导来找出我做错了什么。提前感谢您的帮助!

from PyQt5 import QtWidgets
import pyqtgraph as pg
    
class Plot(pg.PlotWidget):
           
    def contextMenuEvent(self, event):
        menu = QtWidgets.QMenu(self)
        someAction = menu.addAction('New_Item')
    
        res = menu.exec_(event.globalPos())
        if res == someAction:
            print('Hello')
    
if __name__ == '__main__':
    import sys
    app = QtWidgets.QApplication(sys.argv)
    plot = Plot()
    plot.show()
    sys.exit(app.exec_())][1]
python-3.x contextmenu pyqtgraph
1个回答
0
投票

你的代码救了我的命!我也对如何创建自定义上下文菜单感到困惑。非常感谢!

如果您仍在解决这个问题,

class Plot(pg.PlotWidget):

    def __init__(self):
        super().__init__()
        self.setMenuEnabled(False)

    def contextMenuEvent(self, event):
        menu = QtWidgets.QMenu(self)
        someAction = menu.addAction('New_Item')

        res = menu.exec_(event.globalPos())
        if res == someAction:
            print('Hello')


if __name__ == '__main__':
    import sys

    app = QtWidgets.QApplication(sys.argv)
    plot = Plot()
    plot.show()
    app.exec_()

使用

setMenuEnabled(False)
禁用默认上下文菜单。它对您的自定义上下文菜单没有任何作用,一切正常。

© www.soinside.com 2019 - 2024. All rights reserved.