注:PythonとPyQtの経験はほとんどありません...
すでに作成されているコンテキストメニューを前提として、そのコンテキストメニューにアクセスする方法の機能例を探しています。これにより、JavaScriptのgreasemonkeyスクリプトと同等のPythonを実行するプラグインに拡張できます。次に、そのコンテキストメニューにサブメニューを追加する方法の機能例も探しています。ありがとう!
注:PythonとPyQtの経験はほとんどありません...
すでに作成されているコンテキストメニューを前提として、そのコンテキストメニューにアクセスする方法の機能例を探しています。これにより、JavaScriptのgreasemonkeyスクリプトと同等の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)
アヴァリスのコメントは基本的にこの質問に最もよく答えました。ただし、回答ではなくコメントであるため、選択できません。だから私はここでその答えを要約しているので、このQは答えることができます:
「コンテキストメニュー(具体的にはQMenu)が表示されている場合は、それにアクセスできます。」-アヴァリス
「そのファイル[コンテキストメニュー作成コードを含むファイル]を変更せずにこれを行うことはできません。QActionのリストが提供されていることを前提としており(301行目を参照)、QMenuを期待していません。プラグインのplugin_menuリファレンスにアクセスしてください。これは別の話です。」-アヴァリス
したがって、メニュー作成/定義コードがある同じファイル(およびそのファイル内の同じ場所)でメニューを操作するためにアクセスするか、メニューを公開するそのファイル(同じ場所)を介してアクセスすることができますAPI経由。反対に、そのようなAPIアクセスがない場合、および/またはそのファイル/関数を変更する場合、これを行う方法はありません。