我是 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]
你的代码救了我的命!我也对如何创建自定义上下文菜单感到困惑。非常感谢!
如果您仍在解决这个问题,
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)
禁用默认上下文菜单。它对您的自定义上下文菜单没有任何作用,一切正常。