gpt4 book ai didi

python - Tkinter 动态更改文本框中重复字符串的文本颜色

转载 作者:行者123 更新时间:2023-11-28 16:48:29 25 4
gpt4 key购买 nike

我有一个 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_config 之前使用了 tag_add,我相信它应该是相反的才能起作用。

关于python - Tkinter 动态更改文本框中重复字符串的文本颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10995193/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com