我有一個按鈕,它設置/取消突出顯示在QTextEdit框中的拼寫檢查(參考PyQt - How to turn on/off spellchecking),它工作正常。PyQt - 如何打開或關閉拼寫檢查突出顯示
然後我添加了一個語言選擇QComboBox並將其信號綁定到該按鈕的屬性,但其突出顯示的set/unset不能更改語言。它讓我瘋狂,可能會有一些小事和愚蠢的事情發生,但是爲了它,我找不到任何問題。
按鈕(動作相當)是
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()
熒光筆被如何來設置/取消上點擊按鈕,但是在選擇語言時沒有任何反應(它只發生在我開始輸入之後,而不是即時的依靠組合框選擇)?謝謝。
我想試試。但正如我所說,即使沒有rehighlight()按鈕時,它也能正常工作。我不明白爲什麼組合框更改不起作用,如果它使用完全相同的方法? – linuxoid 2012-01-05 23:37:15
是的,現在當我在組合框中更改語言時,它就可以工作。非常感謝你。 – linuxoid 2012-01-05 23:41:58