Я думаю, что вы спрашиваете, как применить подсветку к тексту, который начинается с двоеточия, имеет некоторый интервал текста и заканчивается двоеточием.Вы можете найти текст, который соответствует этому шаблону, с помощью метода текстового виджета search
, и вы можете применить выделение, используя функцию тегов текстовых виджетов.
Поскольку вы хотите искать по шаблону, вам нужноиспользовать поиск по регулярному выражению.Вы делаете это, устанавливая regexp
в True
при вызове метода search
.Поскольку шаблон может быть любой длины, вам также необходимо передать переменную, чтобы tkinter мог вернуть количество символов, с которым он соответствовал.Вы можете использовать эту информацию для применения выделения.
Примечание: при использовании поиска по регулярному выражению выражение должно следовать синтаксису *1000* регулярного выражения *1000*, а не Python.Есть некоторые тонкие различия.
Вот пример, который находит все совпадения двоеточия, за которым сразу следует самая короткая группа непробельных символов, за которой следует двоеточие.Затем он добавляет тег «выделить» к каждому совпадению:
countVar = tk.IntVar()
start_index = "1.0"
while start_index:
index = text_widget.search(r':\S+?:', start_index, stopindex="end",
count=countVar, regexp=True)
if index:
# ie: a match was found
end_index = "{} + {} chars".format(index, countVar.get())
text_widget.tag_add("highlight", index, end_index)
start_index = end_index
else:
start_index = None