我有一个 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")`
`
您需要配置一个标签,并在将文本添加到末尾时指定该标签。
这应该有效(尽管未经测试):
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
before tag_config
,我相信它的工作原理应该是相反的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)