Реализовано одно возможное решение для него.
После создания текстового виджета я создаю прямоугольник с заливкой фона. Прямоугольник также добавляется к тегу, имя которого происходит от имени текстового виджета :
set anno [$canvas create text $acoords -text $text -justify $ajust]
set bgfill [$canvas itemcget background -fill]
set anno_bg [$canvas create rectangle {0 0 0 0} -tags ${anno}.bg -fill $bgfill -width 0]
$canvas raise $anno_bg tmplt_annotation; # tmplt_annotation is a layer of sorts
$canvas raise $anno $anno_bg
Затем, обновляя положение текстового виджета, я устанавливаю координаты прямоугольника, используя его дескриптор тега для ограничивающего прямоугольника текста, а также немного больше для границы:
set box [$canvas bbox $awidget]
$canvas coords ${awidget}.bg [- [lindex $box 0] 1] [- [lindex $box 1] 2] [+ [lindex $box 2] 1] [+ [lindex $box 3] 5]
Что мне не нравится в этом, так это использование тегов для поиска прямоугольника по имени текстового виджета. Тогда снова может быть из-за моей неопытности с тегами.