函数不会突出显示 tkinter 文本小部件中的模式
Function doesn't highlight a pattern in tkinter text widget
我编写了一个小函数来突出显示文本小部件中的搜索模式,并将其分配给一个按钮 "Find"。但事实证明,它没有突出显示文本小部件中所需的模式,只是卡住了。
def find():
xml.tag_delete("search")
xml.tag_configure("search", background="green")
while True:
index = xml.search(fi.get(), "1.0", END)
if index == "":
break
start = index + "+%dc" % len(fi.get())
xml.tag_add("search", index, "%s + %dc" % (index,len(fi.get())))
谁能告诉我我做错了什么? xml
是文本小部件,fi
是条目小部件,因此模式通常是用户在 fi
小部件中输入的内容。
任何帮助,将不胜感激。谢谢
每次搜索都是从“1.0”搜索到文档末尾。如果您要搜索的内容在文档中出现过一次,则此 while 循环将永远不会结束,因为 index
永远不会是空字符串。
解决方案是在循环之前执行 start="1.0"
,然后将搜索修改为从 start
开始,因为您要在循环结束时更新此变量。
start = "1.0"
while True:
index = xml.search(fi.get(), start, END)
我编写了一个小函数来突出显示文本小部件中的搜索模式,并将其分配给一个按钮 "Find"。但事实证明,它没有突出显示文本小部件中所需的模式,只是卡住了。
def find():
xml.tag_delete("search")
xml.tag_configure("search", background="green")
while True:
index = xml.search(fi.get(), "1.0", END)
if index == "":
break
start = index + "+%dc" % len(fi.get())
xml.tag_add("search", index, "%s + %dc" % (index,len(fi.get())))
谁能告诉我我做错了什么? xml
是文本小部件,fi
是条目小部件,因此模式通常是用户在 fi
小部件中输入的内容。
任何帮助,将不胜感激。谢谢
每次搜索都是从“1.0”搜索到文档末尾。如果您要搜索的内容在文档中出现过一次,则此 while 循环将永远不会结束,因为 index
永远不会是空字符串。
解决方案是在循环之前执行 start="1.0"
,然后将搜索修改为从 start
开始,因为您要在循环结束时更新此变量。
start = "1.0"
while True:
index = xml.search(fi.get(), start, END)