【发布时间】:2012-01-06 02:54:01
【问题描述】:
我有一个按钮,可以在 QTextEdit 框中设置/取消设置拼写检查突出显示(参考 PyQt - How to turn on/off spellchecking),效果很好。
然后我添加了一个语言选择 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()
为什么在单击按钮时设置/取消设置荧光笔,但在选择语言时没有任何反应(它只在我开始输入后发生,而不是在组合框选择时立即发生)?谢谢。
【问题讨论】:
标签: python pyqt spell-checking