Ваше наблюдение неверно. Если вы настроите тег, а затем удалите весь текст, тег все еще существует. Вы можете использовать тег для дополнительного текста без необходимости повторного создания тега.
Если вы вставите текст вручную, он не получит тег автоматически, поскольку у tkinter нет возможности узнать, какие теги использовать. Tkinter будет добавлять только те теги, которые находятся на символе до и после точки вставки. Поскольку до или после точки вставки нет символов, новый текст не получит никаких тегов.
Когда вы редактируете текстовый виджет вручную, весь текст проходит через базовый метод insert
. Документация для сообщения insert
включает следующее:
Если есть один аргумент chars и нет tagList, то новый текст получит любые теги, которые присутствуют как на символе до, так и на символе после точки вставки; если тег присутствует только на одном из этих символов, он не будет применен к новому тексту.
Примечание: когда вы нажимаете клавишу в текстовом виджете, он вызывает метод insert
без tagList. Например, нажатие клавиши «a» на клавиатуре приводит к insert("insert", "a")
(то есть: нет аргумента tagList )