Иногда может потребоваться изменить какие-то атрибуты кнопки, например, текст. Однако у той же кнопки нет никакого такого метода для изменения текста. И возникает вопрос, как же его можно изменить?
Для изменения текста мы можем использовать промежуточный компонент StringVar. Этот компонент позволяет создать привязку к строке. Он имеет два методы:
- get(): возвращает строку из StringVar
- set(str): устанавливает строку в StringVar
Для связи объекта StringVar с текстом визуального элемента у этого элемента в конструкторе надо установить параметр textvariable. Например, с помощью нажатия на кнопку пусть у нас изменяется ее текст:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | |
Здесь создается переменная buttonText, которая имеет тип StringVar. Для нее устанавливается начальное значение, а затем переменная btn связывается с этим текстом через параметр textvariable. В итоге при нажатии на кнопку изменится ее текст.

Кроме компонента StringVar нам доступно еще ряд подобных компонентов для других типов данных:
- IntVar
- BooleanVar
- DoubleVar
Например, мы могли бы установить привязку к переменной IntVar и выводить количество кликов:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | |
Метод config
Но есть и другой способ, который особенно поможет, если нам надо изменять не только текст, но и другие параметры кнопки или другого компонента. Это способ заключается в вызове у элемента метода config(), в котором и устанавливается нужный параметр. Например, используем метод config, изменив код скрипта:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | |