Python 如何突出显示文本Tk()中的某些单词

Python 如何突出显示文本Tk()中的某些单词,python,tkinter,text,tk,Python,Tkinter,Text,Tk,我试图在Tk()文本中给出公认的句子。我想根据某些标记的标签,用不同的颜色突出显示它们。我正在将模型结果部署到GUI。模型输出文本文件格式如下所示: # 1.0000 This B-LOC is I-LOC example I-LOC of E-LOC my O data O format O . O In O this B-ORG place E-ORG , O characters O of O my O language O is B-PNAME applied E-PNAME . O

我试图在Tk()文本中给出公认的句子。我想根据某些标记的标签,用不同的颜色突出显示它们。我正在将模型结果部署到GUI。模型输出文本文件格式如下所示:

# 1.0000
This B-LOC
is I-LOC
example I-LOC
of E-LOC
my O
data O
format O
. O
In O
this B-ORG
place E-ORG
, O
characters O
of O
my O
language O
is B-PNAME
applied E-PNAME
. O

And S-PNAME
help O
Me. O
下面是代码示例

if l_list[i] == "S-PNAME" or "B-PNAME" or "I-PNAME" or "E-PNAME":

    self.output.update()
    self.output.insert(END,s_list[i])
    self.output.config(foreground='red')                                   

elif l_list[i] == "S-ORG" or "B-ORG" or "I-ORG" or "E-ORG":              

    self.output.update()
    self.output.insert(END,s_list[i])
    self.output.config(foreground='pink') 

else:
    self.output.update()
    self.output.insert(END,s_list[i])

我想用红色的p-NAME标签、粉色的LOC标签等为代币上色……但在我的输出中,所有句子都是红色的。

我假设您的
自我。输出是文本小部件。当前,您只是通过调用
self.output.config(前台=…)
来修改小部件中所有文本的前台

要突出显示不同文本的颜色,需要为插入的文本设置
tag
,然后使用
tag\u config
配置每个标记的颜色

import tkinter as tk

root = tk.Tk()

text = tk.Text(root)
text.pack()

text.insert(tk.INSERT,"This is a red message\n","red")
text.insert(tk.INSERT,"This is a green message\n","green")
text.insert(tk.INSERT,"This is a blue message\n","blue")

text.tag_config("red", foreground="red")
text.tag_config("green", foreground="green", relief="sunken",borderwidth=2)
text.tag_config("blue", foreground="blue", underline=1)

root.mainloop()

#1.0000此B-LOC是E-LOC my O数据O格式O的I-LOC示例I-LOC。O在O这个B-ORG中放置E-ORG,O我的O语言O的O个字符O是B-PNAME应用E-PNAME。O和S-PNAME帮助我。OI已将您的文本格式化为块,如果这不是您想要的,请再次编辑。谢谢。但它不起作用。如果l_列表[i]=“S-PNAME”或“B-PNAME”或“i-PNAME”或“E-PNAME”:self.output.tag\u configure('red',front='red')self.output.insert(END,S_列表[i],'red')elif l_列表[i]=“S-ORG”或“B-ORG”或“i-ORG”或“E-ORG”:self.output.tag_configure('pink',front='pink')self.output.insert(END,s_list[i],'pink')“不工作”未描述问题。执行时收到了什么错误?输入测试文件格式类似于CoNLL数据格式。在文本输出中,我希望此输入标记按顺序显示,并突出显示某些标记。我得出的结果是,所有标记均以红色突出显示。您不能将导入的所有文本转储到
text
小部件中,并期望自动标记所有关键字。有关如何通过搜索标记关键字的信息,请参见。