我有一个Tkinter文本框设置来显示文件的内容。一个示例行,如下所示:
SUCCESS - Downloaded example.jpg
File was 13KB in size
我想要做的是让任何包含单词“SUCCESS”的行将其文本颜色更改为蓝色。请注意,我需要这个是动态的,因为这个单词可以在一个文件中找到数百次,而且无法预测它的位置。 这是我用来将文件内容输出到文本框的代码。哪个工作正常。
log = open(logFile, 'r')
while 1:
line = log.readline()
if len(line) == 0:
break
else:
self.txtLog.insert(Tkinter.END, line)
self.txtLog.insert(Tkinter.END, os.linesep)
log.close()
我正在尝试使用tag_add和tag_config,就像下面的示例行一样,但无济于事。
`self.txtLog.tag_add("success", "1.0", "1.8")
self.txtLog.tag_config("success", foreground="blue")`
`
答案 0 :(得分:3)
您需要配置标记,并在将文本添加到结尾时指定该标记。 这应该有效(虽然没有经过测试):
self.txtLog.tag_config("success", foreground="blue", font="Arial 10 italic")
log = open(logFile, 'r')
while 1:
line = log.readline()
if len(line) == 0:
break
else:
tags = ("success",) if line.startswith("SUCCESS") else None
self.txtLog.insert(Tkinter.END, line+os.linesep, tags)
log.close()
此外,我刚才注意到您在tag_add
之前使用tag_config
,我认为它应该是相反的。