Это очень вероятно из-за ошибки в функции "new_values", которую вы пропустили.В качестве примера, чтобы показать это:
package require BWidget
proc modify {} {.xyzzy something}
ComboBox .c -textvariable v -values Corners -modifycmd modify
pack .c
Теперь, когда вы запустите это и выберите запись из выпадающего списка, вы получите «Ошибка: неверное имя команды« .xyzzy »».Окно, к которому вы пытаетесь обратиться, очевидно, копается во внутренней реализации этого класса BWidgets, так как winfo children .c
показывает мне, что .c.shell.listb существует.Однако это небезопасно - реализация может меняться от одной версии к другой, и вы не контролируете, когда выпадающий список создается и уничтожается.Проверьте наличие целевого окна, используя как минимум winfo exists $combo.shell.listb
.Возможно, вы захотите убедиться в совместимости версии пакета BWidgets, используя package require -exact BWidget 1.M.N