ZeD ХЗ может и есть чтото такое, но только не в стандартной либе.
Если нет, то вам придется написать это самому. По сути ничего архисложного, нужно чтобы программа искала положение заданых слов и добавляла эти положения к нужным тегам.
очень упрощенный пример найденый в интернетах за 5 минут, подсвечивает красным все слова “strings” в тексте, естевенно можно добавить другие слова и другую подсветку:
#
import tkinter as tk
from tkinter import *
class CustomText(tk.Text):
'''A text widget with a new method, highlight_pattern()
example:
text = CustomText()
text.tag_configure("red", foreground="#ff0000")
text.highlight_pattern("this should be red", "red")
The highlight_pattern method is a simplified python
version of the tcl code at http://wiki.tcl.tk/3246
'''
def __init__(self, *args, **kwargs):
tk.Text.__init__(self, *args, **kwargs)
def highlight_pattern(self, pattern, tag, start="1.0", end="end",
regexp=False):
'''Apply the given tag to all text that matches the given pattern
If 'regexp' is set to True, pattern will be treated as a regular
expression according to Tcl's regular expression syntax.
'''
start = self.index(start)
end = self.index(end)
self.mark_set("matchStart", start)
self.mark_set("matchEnd", start)
self.mark_set("searchLimit", end)
count = tk.IntVar()
while True:
index = self.search(pattern, "matchEnd","searchLimit",
count=count, regexp=regexp)
if index == "": break
if count.get() == 0: break # degenerate pattern which matches zero-length strings
self.mark_set("matchStart", index)
self.mark_set("matchEnd", "%s+%sc" % (index, count.get()))
self.tag_add(tag, "matchStart", "matchEnd")
root = Tk()
texts = 'This is a long strings. How many strings are there'
x = 'strings'
text = CustomText(root) #This is a class that i use to look to highlight x string in texts
text.insert(END, texts)
text.tag_configure("red", foreground="#ff0000")
text.highlight_pattern(x, "red")
text.grid(row = 0 ,column = 1)
root.mainloop()