QtextEditボックス(ref PyQt - How to turn on/off spellchecking)でスペルチェックの強調表示を設定/解除するボタンがあります。PyQt - スペルチェックのハイライトをオン/オフにする方法
言語選択QComboBoxを追加し、その信号をボタンのプロパティに結びましたが、強調表示の設定/解除は言語の変更には対応していません。それは私を狂わせる、私がやった何か小さいと愚かなことがあるかもしれないが、それのために私はそれで間違ったものを見つけることができない。
ボタン(むしろアクションは)
self.actionSpellCheck = QAction(QIcon(self.icon_spellcheck),
"Auto &Spellcheck", self,
shortcut=Qt.CTRL + Qt.SHIFT + Qt.Key_O,
triggered=self.spellcheck, checkable=True)
コンボボックスが
self.cb_lang = QComboBox(tb)
tb.addWidget(self.cb_lang)
lang_list = self.dict_broker.list_languages()
self.cb_lang.addItems(lang_list)
self.cb_lang.currentIndexChanged.connect(self.spellcheck)
あるとself.spellcheckがハイライトをオン/解除設定されますどのように来る
def spellcheck(self):
pos = self.cursor.position()
if self.actionSpellCheck.isChecked():
lang = self.cb_lang.currentText()
self.dict = self.dict_broker.request_dict(lang)
self.highlighter.setDict(self.dict)
self.setHighlighterEnabled(True)
self.show_status("Spellcheck language is set to " + self.dict.tag, None)
else:
self.setHighlighterEnabled(False)
self.highlighter.setDict(None)
self.show_status("Spellcheck is turned off", None)
self.cursor.setPosition(pos, QTextCursor.MoveAnchor)
self.textEdit.setTextCursor(self.cursor)
self.textEdit.setFocus()
ですボタンをクリックしても、言語を選択する際に何も起こりません(これは、入力を開始した後にのみ発生します。コンボボックスの選択に敏感ですか?)ありがとうございました。
私はそれを試してみましょう。しかし、私が言ったように、ボタンを押すと再ハイライト()がなくてもうまく動作します。私はコンボボックスの変更がまったく同じ方法を使用する場合、なぜ動作しないのか理解できません。 – linuxoid
はい、コンボボックスで言語を変更すると動作します。どうもありがとうございました。 – linuxoid