tkinter text widget:设置插入光标

时间:2014-02-18 11:43:01

标签: python autocomplete tkinter

我想在tkinter文本小部件中创建自动完成功能。当自动填充找到可能的单词时,它会删除用户的词性,然后插入完整的单词:

#if some matched words are found
if self._hits != []:

   #delete the part written by the user
   self.text.delete("%s+1c" % Space1Index,INSERT)

   #Inser the complete word
   self.text.insert("%s+1c" % Space1Index,self._hits[self._hit_index])

然后我会将自动填充添加的文本标记为具有与用户输入不同的外观。例如,如果用户写了te,则自动填充功能会写出完整的单词testte将使用普通字体,st将以其他颜色写入,并等待用户通过计算机确认所选单词。

我的问题是,在插入单词test并正确突出显示后,如何在te之后再次移动INSERT位置?

我希望我能够充分澄清我的问题,如果需要更多解释,请告诉我。

2 个答案:

答案 0 :(得分:2)

要移动插入光标,请将“插入”标记设置为您想要的位置:

self.text.mark_set("insert", "%s+1c" % ...)

-OR -

self.text.mark_set(INSERT, "%s+1c" % ...)

答案 1 :(得分:1)

您可以在自动完成更改之前保存插入标记的位置,并在以下情况后将标记重置为保存位置:

old_pos = self.text.index("insert")
# make autocompletion changes
self.text.mark_set("insert", old_pos)