Что сделать, чтобы теги стали выделяемыми?

Опишу свою проблему на примере этого простого кода:

from tkinter import *
window = Tk()
txt = Text()
txt.pack()
txt.insert("1.0", "hello hello hello\nhello hello hello\nhello hello hello")
txt.tag_add("tag", "2.6", "2.11")
txt.tag_config("tag", background="yellow", foreground="black")
window.mainloop()

введите сюда описание изображения

Всё работает отлично...

введите сюда описание изображения

...до тех пор, пока я не выделю все письмена. По итогу получается, что выделено всё, кроме текста под тегом tag (я знаю, что выделилось-то всё, но текст под тегом не выделился синим). Как это исправить?


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

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

У тегов есть приоритет.
Ваше правило перекрывает поведение по умолчанию, так как пользовательский тег имеет более высокий приоритет над встроенными тегами.

Если вы понизите приоритет своего тега txt.tag_lower("tag") или повысите приоритет тега sel отвечающего за выделение txt.tag_raise("sel") то получите ожидаемый результат:

from tkinter import *
window = Tk()
txt = Text()
txt.pack()
txt.insert("1.0", "hello hello hello\nhello hello hello\nhello hello hello")
txt.tag_add("tag", "2.6", "2.11")
txt.tag_config("tag", background="yellow", foreground="black")

txt.tag_lower("tag")

window.mainloop()

введите сюда описание изображения

→ Ссылка