だから、私はPySideとQTにかなり慣れていないので、QTextEdit標準コンテキストメニューからmenuitem(元に戻す、やり直し、コピー、貼り付けなど)を削除する方法を知りたいです。
または、このコンテキストメニューのQMenuオブジェクトを取得する方法を教えてください。次に、removeActionメソッドをmenuitemに適用できます。
TIA。
コンテキスト メニューを完全に制御するには、まずQWidget.setContextMenuPolicyを使用してコンテキスト メニュー ポリシーを に変更しますQt.CustomContextMenu
。次に、ハンドラーをQWidget.customContextMenuRequestedシグナルに接続します。ハンドラーでは、 QTextEdit.createStandardContextMenuメソッドを使用して、標準のコンテキスト メニュー オブジェクトを取得できます。
必要に応じてメニューを変更し、次のQPoint
ようにシグナル ハンドラに渡されたを使用して表示します。
menu.exec_(textedit.viewport().mapToGlobal(point))
pysideへようこそ!:-)
QTextEditはQWidgetを継承するため、コンテキストメニューポリシーをカスタムに設定してから、独自のポップアップメニューを提供することをお勧めします。
独自のカスタムコンテキストを作成することをお勧めする理由は、qmenuがqtexteditの永続オブジェクトとして実際にアクセスできないためです。クリックされた瞬間のコンテキストに基づいて、その場で構築されます。表示される前にqmenuにアクセスするためにオーバーロードできる方法があるかどうかはわかりません。私はあなたができる最善のことはあなた自身を完全に定義することだと思います。