3

注:PythonとPyQtの経験はほとんどありません...

すでに作成されているコンテキストメニューを前提として、そのコンテキストメニューにアクセスする方法の機能例を探しています。これにより、JavaScriptのgreasemonkeyスクリプトと同等のPythonを実行するプラグインに拡張できます。次に、そのコンテキストメニューにサブメニューを追加する方法の機能例も探しています。ありがとう!

4

2 に答える 2

2

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)
于 2012-04-18T00:33:06.583 に答える
1

アヴァリスのコメントは基本的にこの質問に最もよく答えました。ただし、回答ではなくコメントであるため、選択できません。だから私はここでその答えを要約しているので、このQは答えることができます:

「コンテキストメニュー(具体的にはQMenu)が表示されている場合は、それにアクセスできます。」-アヴァリス

「そのファイル[コンテキストメニュー作成コードを含むファイル]を変更せずにこれを行うことはできません。QActionのリストが提供されていることを前提としており(301行目を参照)、QMenuを期待していません。プラグインのplugin_menuリファレンスにアクセスしてください。これは別の話です。」-アヴァリス

したがって、メニュー作成/定義コードがある同じファイル(およびそのファイル内の同じ場所)でメニューを操作するためにアクセスするか、メニューを公開するそのファイル(同じ場所)を介してアクセスすることができますAPI経由。反対に、そのようなAPIアクセスがない場合、および/またはそのファイル/関数を変更する場合、これを行う方法はありません。

于 2012-05-10T22:57:51.350 に答える