这是两部分问题的一部分(另一部分是here)
所以我正和wxPython和PyEnchant合作,试图让一些奇特的功能得以实现。具体地说,我希望我的文本控件更改拼写错误的单词的颜色。如果我把下面的代码绑定到一个按钮上,我可以这样做。(其中input
是wx.TextCtrl
)
chkr = SpellChecker("en_US",self.input.GetValue())
words = self.input.GetValue().split()
wrongWords = [err.word for err in chkr]
self.input.ChangeValue("")
for word in words:
if not word in wrongWords:
self.input.SetDefaultStyle(wx.TextAttr(wx.BLACK))
self.input.AppendText(word+" ")
else:
self.input.SetDefaultStyle(wx.TextAttr(wx.RED))
self.input.AppendText(word+" ")
这正是我想要的,只是我不想把它绑定到按钮上。在
这就是第二个问题出现的地方。我希望它在用户完成编辑后自动发生。您可以看到另一个问题来全面讨论这意味着什么,但是在这个问题的范围内,它意味着我必须在不生成EVT_TEXT
事件的情况下执行上述操作。在
ChangeValue()
与SetValue()
相同,但它不生成{AppendText()
生成时,是否有方法抑制EVT_TEXT
,或者确定事件是否来自{
编辑:我已经通过使用Unbind()
来解决这个问题,但是如果有人能找到一个更好的方法,我仍然愿意接受
目前没有回答
相关问题 更多 >
编程相关推荐