Python Tkinter:根据关键字突出显示/颜色特定的文本行

Python Tkinter:根据关键字突出显示/颜色特定的文本行,python,python-2.7,python-3.x,tkinter,Python,Python 2.7,Python 3.x,Tkinter,我正在寻找一种简单的方法来搜索一行文本,并在其中包含特定单词时突出显示该行。我有一个tkinter文本框,其中有许多行,如: “诸如此类诸如此类失败诸如此类” “诸如此类诸如此类,诸如此类” 我想将“失败”行的背景颜色设置为红色。到目前为止,我已经: for line in results_text: if "Failed" in line: txt.tag_config("Failed", bg="red") txt.insert(0.0,line) els

我正在寻找一种简单的方法来搜索一行文本,并在其中包含特定单词时突出显示该行。我有一个tkinter文本框,其中有许多行,如:

“诸如此类诸如此类失败诸如此类”

“诸如此类诸如此类,诸如此类”

我想将“失败”行的背景颜色设置为红色。到目前为止,我已经:

for line in results_text:
   if "Failed" in line:
      txt.tag_config("Failed", bg="red")
      txt.insert(0.0,line)
   else:
      txt.insert(0.0,line)
这个打印出我想要的所有东西,但对颜色没有任何影响

这显然是改变文本颜色的错误方法。请帮忙

使用

from Tkinter import *

root = Tk()
t = Text(root)
t.pack()
t.insert(END, '''\
blah blah blah Failed blah blah
blah blah blah Passed blah blah
blah blah blah Failed blah blah
blah blah blah Failed blah blah
''')
t.tag_config('failed', background='red')
t.tag_config('passed', background='blue')

def search(text_widget, keyword, tag):
    pos = '1.0'
    while True:
        idx = text_widget.search(keyword, pos, END)
        if not idx:
            break
        pos = '{}+{}c'.format(idx, len(keyword))
        text_widget.tag_add(tag, idx, pos)

search(t, 'Failed', 'failed')
search(t, 'Passed', 'passed')

#t.tag_delete('failed')
#t.tag_delete('passed')

root.mainloop()