Изменить цвет уже существующего ярлыка в Tcl / Tk - PullRequest
2 голосов
/ 08 ноября 2011

У меня есть строка состояния, которая является меткой, связанной с переменной:

label .main_frame.status_bar.status_label -textvariable _DB(status_text)

Я хочу менять цвет текста каждый раз, когда я получаю сообщение об ошибке, то есть, когда в строке состояния отображается ошибка, текст должен быть красным, а затем, когда он показывает нормальное состояние, он должен снова стать черным. Как изменить свойство -foreground метки «на лету»?

Ответы [ 2 ]

5 голосов
/ 08 ноября 2011

Вы можете перенастроить любое свойство виджета Tk в реальном времени, вызвав процедуру configure виджетаВ этом случае:

.main_frame.status_bar.status_label configure -foreground $new_colour
5 голосов
/ 08 ноября 2011
$label configure -fg $color

или

$label configure -foreground $color

Запустите $label configure в интерактивной оболочке желаний, чтобы увидеть все опции, которые вы можете изменить.

P.S. Я должен добавить, что IMO этот подход к сообщениям об ошибках несовершенен. Показывать некритические предупреждения можно, но об ошибках следует сообщать более агрессивно.

...