注意:我对 python 和 PyQt 的经验很少......
鉴于已经创建了一个上下文菜单,我正在寻找一个功能示例,说明我将如何访问该上下文菜单,因此它可以扩展为一个插件,该插件正在执行相当于 javascriptgreasemonkey 脚本的 python。然后,我还在寻找一个功能示例,说明如何将子菜单添加到该上下文菜单。谢谢!
注意:我对 python 和 PyQt 的经验很少......
鉴于已经创建了一个上下文菜单,我正在寻找一个功能示例,说明我将如何访问该上下文菜单,因此它可以扩展为一个插件,该插件正在执行相当于 javascriptgreasemonkey 脚本的 python。然后,我还在寻找一个功能示例,说明如何将子菜单添加到该上下文菜单。谢谢!
customContextMenuRequested 信号将连接到方法/函数(在 Qt 中称为插槽),查找类似于此的代码行以了解需要调整的方法/函数:
self.centralwidget.customContextMenuRequested.connect(self.context_menu_method)
因此对于该示例,您需要调整 self.context_menu_method,这就是实际创建菜单的方法
以及如何添加子菜单的代码示例:
menu = QtGui.QMenu()
submenu = QtGui.QMenu(menu)
submenu.setTitle("Submenu")
menu.addMenu(submenu)
Avaris 的评论基本上最好地回答了这个问题。但是,我无法选择它,因为它是评论,而不是答案。所以我在这里总结了这个答案,所以这个Q可以回答:
“如果给你一个上下文菜单(具体来说是 QMenu),你可以访问它。” - 阿瓦里斯
“如果不修改该文件[包含上下文菜单创建代码的文件],您将无法执行此操作。它假定它已经给出了一个 QActions 列表(参见第 301 行)并且它不会期待 QMenu。不过,如果你能访问插件中的 plugin_menu 参考,那是另一回事。” - 阿瓦里斯
因此,您可以访问以在菜单创建/定义代码所在的同一文件(以及该文件中的同一位置)中操作菜单,或者您可以通过该文件(在同一位置)访问以公开菜单通过 API。另一方面,如果您没有此类 API 访问权限,和/或修改该文件/函数,则无法执行此操作。