Как задать цвет элементам списка при выводе их в окно tkinter

Есть код:

import tkinter import *
from tkinter import messagebox
from tkinter import scrolledtext
import re

SBX=['минимально','норма','максимально','','минимально','норма','максимально','','минимально','норма','максимально','','минимально','норма','максимально','']

def delete_element(c):
    n = []
    for i in range(len(c)):
        if len(c[i]) >1:
            n.append(c[i])
    return n

def SBX_1():
    HEX = str(EntryHEX.get())
    if  re.match('^[abcdefABCDEF0123456789]*$', HEX) and 1<= len(HEX) <=4:
        BIN = format(int(HEX, 16), '0>16b')        
        NIB = BIN[::-1]                                
        c=[x+y for x,y in zip(NIB, SBX)]
        f=list(filter(lambda x: x.startswith('1'), c)) 
        new=list(i[1:] for i in f)
        new_1=delete_element(new)
        TextWorld.delete(1.0,END)
        TextWorld.insert(END, f'    СИГНАЛЫ\n')
        TextWorld.insert(END, f'────────────────────────────────────────────────────────\n')
        for i in (new_1):
            TextWorld.insert(END, f' {i}\n')
    else:
        messagebox.showerror('ВНИМАНИЕ', 'Ошибка...')

root = Tk()
root.title('ЭКСПРЕСС АНАЛИЗ')
Label(root, text='HEX:', font='Arial 10').grid(row=0, column=0, columnspan=1)
EntryHEX = Entry(root, width=11, font='Arial 8')
EntryHEX.grid(row=0, column=1, columnspan=1)
TextWorld = scrolledtext.ScrolledText(root, font='Arial 9', width=73, height=20, fg='black', bg='white')
TextWorld.grid(row=1, column=0, columnspan=7)
TextWorld.bind('<Key>', lambda e: 'break')
Button_SBX = Button(root,text='1',font='Arial 8', width=11, height=1, bg='#8c8c46', fg='black',command=SBX_1).grid(row=8, column=0)
root.mainloop()

Вводится шестнадцатеричное значение HEX. Переводится в двоичное значение и складывается с элементами списка SBX. Нулевые значения «отбрасываются» и выводятся значения с «1».
Ранее программа была консольной, и цвет элементов списка SBX мог задать заранее, используя библиотеку colorama. Подскажите пожалуйста, как при использовании tkinter можно заранее задать цвета выходным сигналам, например «норма» – зелёный, «минимальный» – жёлтый, «максимальный» – красный? Спасибо!


Ответы (1 шт):

Автор решения: day383

Добавьте теги к TextWorld:

[...]
TextWorld = scrolledtext.ScrolledText(root, font='Arial 9', width=73, height=20, fg='black', bg='white')

TextWorld.tag_config('минимально', foreground='yellow')
TextWorld.tag_config('норма', foreground='green')
TextWorld.tag_config('максимально', foreground='red')

TextWorld.grid(row=1, column=0, columnspan=7)
[...]

Затем передавайте нужный тег вместе с insert, его имя будет совпадать с i:

[...]
for i in (new_1):
    TextWorld.insert(END, f' {i}\n', i)
→ Ссылка