Виджеты Checkbutton, Label, Scale и Listbox в Tkinter

Виджет флажка, шкалы с ползунком и списка

В 3-ей части уроков по изучению Tkinter мы расскажем о базовых виджетах.

Содержание курса

  1. Создание окна по центру и кнопка выхода в Tkinter
  2. Разметка виджетов в Tkinter — pack, grid и place
  3. Виджеты Checkbutton, Label, Scale и Listbox в Tkinter
  4. Меню, подменю и панель инструментов в Tkinter
  5. Диалоговые окна в Tkinter
  6. Рисуем линии, прямоугольники, круг и текст в Tkinter
  7. Пишем игру змейка на Tkinter

Содержание статьи

В рамках урока мы будем работать с виджетами:

  • Checkbutton (флажок);
  • Label (ярлык);
  • Scale (шкала с ползунком);
  • Listbox (список).

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

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

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

Виджет Checkbutton — Флажок ВКЛ/ВЫКЛ

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



Есть вопросы по Python?

На нашем форуме вы можете задать любой вопрос и получить ответ от всего нашего сообщества!

Telegram Чат & Канал

Вступите в наш дружный чат по Python и начните общение с единомышленниками! Станьте частью большого сообщества!

Паблик VK

Одно из самых больших сообществ по Python в социальной сети ВК. Видео уроки и книги для вас!

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

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

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

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

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

Флажки в Tkinter checkbox

Виджет Label (ярлык) пример кода Tkinter

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

В данном примере используется дополнительный файл:

Сохраните изображение рядом с файлом label.py, код для которого предоставлен ниже.

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

Виджет ярлыка в Tkinter

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

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

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

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

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

Виджет Scale — шкала с ползунком в Tkinter

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

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

Мы создаем виджет Scale. Также мы указываем границы шкалы от 0 до 100. В Python слово from это зарезервированное ключевое слово, поэтому необходимо прописывать символ подчеркивание (_) после параметра. Когда мы двигаем ползунок по шкале, вызывается метод onScale().

Создается переменная для хранения целого значения из шкалы и виджет ярлыка. Значение из переменной val будет отображаться в ярлыке.

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

шкала с ползунком в Tkinter

Виджет Listbox — Список в Tkinter

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

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

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

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

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

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

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

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

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

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

Список в Tkinter

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