Tkinter文本小部件颜色某些文本

时间:2017-03-23 05:25:37

标签: python text tkinter

我有一个BaseActivity窗口小部件是不可编辑的,可以使用Text窗口小部件添加文本。我希望Entry窗口小部件中的某些文本与其他文本的颜色不同,具体取决于发送的文本类型。 例如,取决于类型的可能输出可以是:

Text

根据我的发现,似乎可以使用*Line one text* (color: Black) *Line two text* (color: Blue) *Line three text* (color: Black) 小部件具有的tag_addtag_configure方法,但我不确定如何执行此操作。

我有以下方法将文本附加到Text小部件并且能够更改文本的颜色:

Text

但是,如果我将颜色更改为“绿色”,则不会仅针对发送的文本更改颜色,而是将其更改为所有文本。

那么如何让它仅用于发送的文本?

另请注意,我正在运行Python 3.6.1

1 个答案:

答案 0 :(得分:2)

您需要为每种颜色使用唯一的标记名称。

def append_to_display(self, text, color=standard):
    tag_name = "color-" + color
    self.display.tag_configure(tag_name, foreground=color)
    ...
    self.display.insert(END, text + "\n", tag_name)
    ...