移动到文本小部件tkinter中的特定位置

mid*_*ori 2 python tkinter python-2.7 text-widget

我想知道是否可以移动到tkinter中文本小部件中的特定位置.我在文本小部件中实现了搜索,并希望实现"next"和"previous"方法,以便我的搜索在文本小部件中移动.有可能吗?谢谢你的帮助.

这是我的方法的代码:

def find():
    xml.tag_delete("search")
    xml.tag_configure("search", background="green")
    start="1.0"
    if len(fi.get()) > 0:
        xml.mark_set("insert", xml.search(fi.get(), start))
        while True:
            pos = xml.search(fi.get(), start, END) 
            if pos == "": 
                break       
            start = pos + "+%dc" % len(fi.get()) 
            xml.tag_add("search", pos, "%s + %dc" % (pos,len(fi.get())))
Run Code Online (Sandbox Code Playgroud)

fi是搜索模式的输入字段.xml是一个文本字段.

Bry*_*ley 7

文本小部件具有标记,这些标记实际上是命名位置.插入光标由标记"insert"(和tkinter常量INSERT)定义.您可以使用该mark_set方法移动此索引.

例如,这会将插入光标移动到第3行,即字符14:

the_widget.mark_set("insert", "3.14")
Run Code Online (Sandbox Code Playgroud)

如果要确保新插入位置可见,可以使用该see方法,该方法将滚动窗口小部件,以使给定索引可见:

the_widget.see("insert")
Run Code Online (Sandbox Code Playgroud)

  • @BigOldTree:是的,当然有可能.`the_widget.see( "插入")`. (2认同)
  • 你知道 Bryan,你是最棒的 :) 就像一个移动的 tkinter 百科全书准备好立即回答。 (2认同)