1

我编写了一个小函数来突出显示文本小部件中的搜索模式,并将其分配给一个按钮“查找”。但事实证明,它没有突出显示文本小部件中所需的模式,只是卡住了。

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小部件的内容。任何帮助,将不胜感激。谢谢

4

1 回答 1

4

每次搜索时,都会从“1.0”搜索到文档末尾。如果您要搜索的内容甚至在文档中出现一次,则此 while 循环将永远不会结束,因为index永远不会是空字符串。

解决方案是start="1.0"在循环之前执行,然后修改您的搜索以开始,start因为您在循环结束时更新此变量。

start = "1.0"
while True:
    index = xml.search(fi.get(), start, END) 
于 2015-02-17T19:08:26.300 回答