我编写了以下函数,该函数在文本框中的每个按键事件处触发。这个想法是它允许用户输入特殊字符(西班牙语动词结合测试应用程序的重音元音)。当光标位于输入文本的末尾时,它可以正常工作,但如果用户尝试返回并在控件中间编辑一个字母,则特殊字符仍会显示在结尾处。我知道这是因为我正在使用AppendText
但我看不到像InsertText
这样的内容在不同的插入点插入文本。这样做的正确方法是什么?
def SpecialChars(self, e):
vowels = {65: 225, 69: 233, 73: 237, 79: 243, 85: 250}
key = e.GetUniChar()
if self.last_key_down == 'accent' and key in vowels.keys():
self.answer_txt.AppendText(unichr(vowels[key]))
self.last_key_down = 'none'
elif key == 39:
self.last_key_down = 'accent'
else:
self.last_key_down = 'none'
e.Skip()
答案 0 :(得分:0)
解决了它。 TextCtrl.WriteText()
正是我所需要的。
答案 1 :(得分:0)
尝试这种方式:
self.answer_txt.SetInsertionPoint(3)
self.answer_txt.Replace(3,3,"a")