Я пишу небольшую утилиту на Python, которая выполняет некоторое сопоставление текста с образцом. Текст, соответствующий введенному пользователем шаблону, выделяется желтым цветом.
Я добиваюсь этого с помощью виджета Tkinter Text
и устанавливаю тег в виджете Text с именем "match"
, который выделяет любой текст с именем тега "match"
на желтом фоне.
Все это выглядит красиво, за исключением тех случаев, когда я пытаюсь выделить текст с помощью мыши (например, когда я хочу скопировать / вставить). Когда я выделяю текст с помощью мыши, любой текст с тегами, у которого уже есть желтый фон, сохраняет желтый фон даже после выделения. Это означает, что вы не можете правильно прочитать текст, когда он был выделен мышью, поскольку белый текст (текст становится белым при выделении мышью) на желтом фоне обеспечивает плохой контраст.
Я бы хотел, чтобы когда я выделял текст в виджете «Текст» с помощью мыши, весь текст приобретал стандартный синий цвет фона / белый цвет текста, который вы обычно получаете на компьютере с Windows при выделении раздела. текста.
Вот небольшой фрагмент кода, чтобы продемонстрировать, что я имею в виду:
from tkinter import *
root = Tk()
w = Text(root)
w.tag_config("match",background="yellow")
w.config(highlightbackground="red")
w.pack()
w.insert(INSERT,"some non-matching text.")
w.insert(INSERT,"some matching text.","match")
root.mainloop()
Если вы запустите это, а затем выделите весь текст в виджете «Текст», вы увидите, что текст с желтым фоном становится очень трудно читать.
Обратите внимание, что в приведенном выше фрагменте кода я попытался изменить цвет фона выделения, используя:
w.config(highlightbackground="red")
Но это не сработало.