Ваша функция _highlight_current_line
делает то, что должна: она подсвечивает строку курсора вставки.Но вам нужно выделить последний вставленный текст, который отличается от других.Вы можете просто создать новый тег.Давайте назовем это 'last_insert'
:
self.text.tag_configure("last_insert", background="#e9e9e9")
И когда вы добавляете текст, вы можете указать тег (ы), прикрепленный к вставленному тексту:
self.text.insert(tk.END, text, ('last_insert',))
Конечно, если вычтобы выделить только последний вставленный текст, добавьте следующее:
self.text.tag_remove("last_insert", 1.0, "end")
Примечание: функция tkinter tag_add
принимает в качестве аргументов tag
, start
, end
, где start
end
- текстовые индексы в виде строки 'a.b'
, где a
- индекс строки (начиная с 1 сверху), а b
- символ внутри этой строки (начиная с 0).Вы можете изменить индекс с помощью выражений (см. Здесь: http://effbot.org/tkinterbook/text.htm.. Далее, «вставить» - это отметка (прочитанная по вышеупомянутой ссылке) - и "insert linestart"
заменяется на tkinter индексом "line.0"
, где line
это строка, в которой находится курсор вставки.