私は、ユーザーが単語を強調表示できるテキストボックスに機能を追加しようとしています。右クリックし、強調表示された単語を定義するかどうかを選択することができます。コンテキストメニューをコーディングしましたが、テキストボックスの外側をクリックすると表示されます。とにかく、コピー、ペーストなどを含むデフォルトのコンテキストメニューに機能を追加できますか?コンテキストメニューのコードは次のとおりです。PyQt5を使ってPythonテキストボックスのデフォルトのコンテキストメニューに追加するには?
self.setContextMenuPolicy(Qt.ActionsContextMenu)
defineAction = QtWidgets.QAction("Define", self)
defineAction.triggered.connect(lambda: self.define(event))
self.addAction(defineAction)
synonymAction = QtWidgets.QAction("Find Synonyms", self)
synonymAction.triggered.connect(lambda: self.synonym(event))
self.addAction(synonymAction)
は、テキスト編集ウィジェットをサブクラス化とはどういう意味ですか? – bridgjac000
@ bridgjac000私は自分の答えを更新しました –
@three_pineapples私はかなり確実に 'self.my_textbox.customContextMenuRequested.connect(self.generate_context_menu)'とされています。それにもかかわらず、メニューはポップアップしませんでしたが、contextMenuEvent [docsに表示されているように]をオーバーライドしました(http://doc.qt.io/qt-5/qtextedit.html #contextMenuEvent)が機能しました。 –