В данной главе мы изучили основы использования библиотеки tkinter в сценариях на языке Python и познакомились с рядом простых виджетов — метками, кнопками, фреймами, а также с менеджером компоновки. Этого достаточно для создания простых интерфейсов, но в действительности мы лишь поверхностно ознакомились с набором виджетов tkinter.
В следующих двух главах мы будем применять полученные знания для изучения оставшейся части библиотеки tkinter и приемов ее использования для создания интерфейсов, встречающихся в реальных программах с графическим интерфейсом. В качестве предварительного обзора и предлагаемого маршрута в табл. 7.1 перечислены виджеты, которые нам там встретятся, примерно в том порядке, в котором они будут появляться. Обратите внимание, что в этой таблице перечислены только классы виджетов. Мы также встретимся с некоторыми дополнительными темами, относящимися к виджетам, которых нет в этой таблице.
Таблица 7.1. Классы виджетов tkinter
Классы виджетов |
Описание |
Label |
Простая область для вывода текста |
Button |
Простая кнопка с меткой |
Frame |
Контейнер для прикрепления и размещения других виджетов |
Toplevel, Tk |
Новое окно, управляемое менеджером окон |
Message |
Метка с несколькими строками |
Entry |
Простое однострочное поле ввода текста |
Checkbutton |
Кнопка с двумя состояниями; обычно используется для организации для выбора нескольких вариантов |
Radiobutton |
Кнопка с двумя состояниями; обычно используется для организации выбора одного варианта из нескольких |
Scale |
Ползунок со шкалой |
PhotoImage |
Объект графического изображения, используемый для вывода полноцветных изображений на других виджетах |
BitmapImage |
Объект графического изображения, используемый для вывода растровых изображений на других виджетах |
Набор вариантов выбора, связанных с Menubutton или с окном верхнего уровня |
Таблица 7.1 (продолжение)
Классы виджетов |
Описание |
Menubutton |
Кнопка, открывающая меню или подменю с вариантами выбора |
Scrollbar |
Элемент управления для прокрутки содержимого других виджетов (например, списка, холста, текста) |
Listbox |
Список имен, доступных для выбора |
Text |
Виджет для просмотра/редактирования многострочного текста, поддерживающий шрифты и так далее |
Canvas |
Область для изображения графики с поддержкой возможности рисования линий, окружностей, фотографий, текста и так далее. |
В этой главе мы уже встречались с виджетами Label, Button и Frame. Для облегчения усвоения оставшийся материал разбит на две главы: глава 8 освещает элементы в верхней части табл. 7.1, вплоть до Menu, а в главе 9 представлены виджеты, находящиеся в нижней части таблицы.
Помимо классов виджетов, представленных в табл. 7.1, в библиотеке tkinter содержатся дополнительные классы и инструменты, многие из которых также будут исследованы в двух следующих главах:
Управление компоновкой
pack, grid, place
Связанные переменные tkinter
StringVar, IntVar, DoubleVar, BooleanVar
Улучшенные виджеты Tk
Spinbox, LabelFrame, PanedWindow
Составные виджеты
Dialog, ScrolledText, OptionMenu
Планируемые обратные вызовы
Методы виджетов after, wait и update
Прочие инструменты
Стандартные диалоги, буфер обмена, bind и Event, параметры настройки виджетов, пользовательские и модальные диалоги, анимационные эффекты
Большинство виджетов tkinter принадлежит к числу знакомых интерфейсных элементов. Некоторые из них обладают очень богатой функциональностью. Например, класс Text реализует сложный виджет многострочного текста, поддерживающий шрифты, цвета и спецэффекты, мощности которого достаточно для реализации веб-броузера. Аналогично класс Canvas предоставляет множество инструментов, достаточно мощных для создания приложений отображения и обработки изображений. Кроме того, расширения для библиотеки tkinter, такие как Pmw, Tix и ttk, добавляют в инструментарий разработчика графических интерфейсов виджеты с еще более богатыми возможностями.
Использованная литература:
Марк Лутц — Программирование на Python, 4-е издание, I том, 2011