Виджеты в Tkinter [Урок №3]

автор

В этой части обучения Tkinter мы расскажем о базовых виджетах. В рамках урока мы будем работать с виджетами: Checkbutton, Label, Scale и Listbox.

Виджеты – это базовые блоки для создания графического интерфейса программы. За годы развития программирования некоторые из виджетов стали стандартными во всех языках и на всех платформах.

Например, это виджеты кнопок, флажки или полоса прокрутки. Некоторые из виджетов могут иметь другие названия в Tkinter. Например, классические флажки (check box) называются check button. В Tkinter реализован небольшой набор виджетов, который покрывает базовые нужды программирования. Дополнительные виджеты могут быть созданы как пользовательские виджеты.

Checkbutton

Checkbutton – это виджет, который имеет два состояния: «включен» и «выключен». Состояние «включен» визуально символизируется соответствующей отметкой (Некоторые темы могут иметь разные визуальные отметки). Виджет используется для обозначения каких-либо логических свойств. Виджет Checkbutton имеет флажок и текстовый ярлык.



Мы собрали ТОП Книг для Python программиста которые помогут быстро изучить язык программирования Python. Список книг: Книги по Python

В нашем примере мы поместили флажок в окно. Использование этого флажка позволяет скрыть или отобразить название окна.

Мы создали BooleanVar объект. Данные объекты позволяют хранить логические значения виджетов в Tkinter.

Создается экземпляр Checkbutton. Объект, хранящий значение, соединяется с виджетом посредством параметра variable. Когда мы нажимаем на флажок, вызывается метод onClick(). Для этого также используется параметр command.

Изначально, название отображается в заголовке окна. Поэтому, изначально мы делаем флажок включенным с помощью метода select().

Внутри метода onClick() мы отображаем или скрываем заголовок окна, основываясь на значении переменной self.var.

checkbutton

Ярлыки

Виджет Label используется для того, чтобы отображать текст или изображения. С этим виджетом пользователи никак не могут взаимодействовать.

Чтобы запустить этот пример, необходимо установить модуль python-imaging-tk.

Наш пример показывает изображение в окне.

По умолчанию, виджет Label может отображать ограниченное количество форматов изображений. Чтобы отобразить JPG изображение, необходимо использовать PIL (Python Imaging Library модуль).

Мы собрали ТОП Книг для Python программиста которые помогут быстро изучить язык программирования Python. Список книг: Книги по Python

Мы создаем изображение из файла изображения в текущей рабочей директории. После этого мы создаем фото изображение из изображения.

Фотоизображению присваивается параметр image виджета ярлыка.

Чтобы не смешать изображение с разным мусором, необходимо сохранить ссылку на него.

Мы устанавливаем размер окна таким образом, чтобы максимально точно подобрать его под размеры изображения.

Шкала

Scale – это виджет, который позволяет пользователю графически выбирать значение, перемещая определенный ползунок по ограниченной линии. В нашем примере выбранное значение ползунком будет отображено виджетом ярлыка в формате текста.

В нашем скрипте присутствует два виджета: scale и label. Значение из виджета шкалы отображается в виджете ярлыка.

Мы создаем виджет Scale. Также мы указываем нижнюю и верхнюю рамки значений. From – это регулярное ключевое слово в Python, поэтому необходимо прописывать символ подчеркивание (Underscope) после параметра. Когда мы двигаем ползунок по шкале, вызывается метод onScale().

Создаются держатель целого значения и виджет ярлык. Значение из держателя будет отображаться в виджете ярлыке.

Метод onScale() получает текущее выбранное значение из виджета шкалы как параметр. Значение сначала конвертируется в значение с плавающей точкой, после чего конвертируется в целое. В результате, значение передается держателю и отображается на виджете ярлыке.

scale

Списки

Виджет Listbox позволяет отображать список объектов. Он позволяет пользователю выбирать один или несколько объектов.

Мы собрали ТОП Книг для Python программиста которые помогут быстро изучить язык программирования Python. Список книг: Книги по Python

В нашем примере мы покажем список актрис, используя Listbox. Выбранная актриса на текущий момент отображается в виджете ярлыка.

Это весь список актрис, которые будут показаны в списке.

Мы создаем экземпляр Listbox и включаем в него все объекты из указанного выше списка.

Когда мы выбираем объект в списке, генерируется событие <>. Мы присваиваем метод onSelect() этому событию.

Мы создаем ярлык и держатель его значения. С помощью этого ярлыка мы будем отображать выбранный на текущий момент объект.

Мы получаем отправителя события – это наш виджет списка.

Мы узнаем индекс выбранного элемента при помощи метода curselection().

Фактическое значение извлекается при помощи метода get(), который получает индекс объекта.

В результате, ярлык обновляется.

listbox
В этой части обучения Tkinter мы рассказали о базовых виджетах.

Вам может быть интересно

Scroll Up

Подпишись на канал!

Новые видеоуроки, книги и полезные статьи для python программистов!