Tkinter. Программирование GUI на Python. Курс
Курс "Tkinter. Программирование GUI на Python" знакомит с особенностями создания графического интерфейса пользователя средствами пакета tkinter языка программирования Python. Требует знания языка Python на уровне структурного программирования, желательно также владение азами ООП.
В курсе уделяется внимание работе с базовыми элементами интерфейса (виджетами). Изучаются основные свойства и методы кнопок, меток, текстовых полей, списков, флажков и радиокнопок, холста и меню.
Рассматриваются различные способы размещения виджетов в родительском окне: простой упаковкой, табличным разбиением и с помощью координат.
Изучаются настройки главного окна приложения, диалоговые окна, модуль tkinter.ttk.
Версия курса: июль 2024 г.
Что такое Tkinter
Tkinter - это пакет модулей Python для создания приложений с графическим интерфейсом пользователя. Tkinter используется в Python по-умолчанию. В уроке рассматривается последовательность шагов создания GUI-программы: импорт, создание окна и виджетов, установка свойств, событий и др.
Виджеты Button, Label, Entry
В tkinter от класса Button создаются кнопки, от Label - метки, от Entry - однострочные текстовые поля для ввода. В уроке рассматривают основные свойства и методы данных виджетов.
Метод pack
В tkinter с помощью метода pack виджеты располагаются в родительском окне или фрейме. В уроке описываются опции pack, позволяющие конфигурировать виджеты относительно друг друга и относительно родителя.
Text – многострочное текстовое поле
В tkinter от класса Text создаются виджеты многострочного текстового поля. В уроке рассматриваются свойства и методы Text, настройка Scrollbar (скроллера), создание и конфигурирование тегов.
Переменные tkinter. Переменные для виджетов
В tkinter есть особые классы, от которых создаются объекты-переменные. Их связывают с виджетами для отслеживания их состояния или изменения. Переменные Tkinter создаются от классов IntVar, BooleanVar, DoubleVar, StringVar, а также их родительского Variable.
Виджет Radiobutton (радиокнопка)
В tkinter от класса Radiobutton создаются радиокнопки (переключатели). С помощью экземпляров переменных Tkinter радиокнопки связываются в одну группу так, чтобы при включении одной, остальные выключались.
Виджеты Checkbutton – флажки, или чекбоксы
В tkinter от класса Checkbutton создаются флажки. В уроке описываются их основные свойства и методы, а также как с помощью переменных tkinter снимать данные с флажков.
Виджет Listbox
В tkinter от класса LIstbox создаются виджеты-списки, позволяющие выбирать один или множество элементов. В уроке рассматривается как заполнять список, удалять из него значения, считывать выбранные элементы.
Метод bind
В Tkinter метод bind связывает виджет, событие и функцию-обработчик: widget.bind(event, function). В уроке рассматриваются особенности передачи функций в метод bind.
События
В GUI событиями являются клики и движение мышью, нажатие клавиш на клавиатуре, изменение виджетов. События - это особые объекты Tkinter, имеющие свои атрибуты: тип, виджет, по отношению к которому произошло событие и др.
Canvas
От класса Canvas в tkinter создаются холсты, на которых можно с помощью специальных методов рисовать геометрические фигуры и размещать объекты. В уроке рассматривается создание на холсте геометрических примитивов (отрезков, многоугольников, эллипсов и др.) и текста.
Canvas. Идентификаторы, теги и анимация
Canvas - это холст, на котором можно программно выводить геометрические фигуры и другие объекты, к которым можно обращаться с помощью идентификаторов и тегов с целью изменения их свойств в процессе выполнения программы. Это позволяет в том числе делать холст интерактивным, создавать анимацию.
Класс PhotoImage. Добавление изображений на виджеты
В самом пакете tkinter есть возможность работать с изображениями - класс PhotoImage, который позволяет загружать в программу изображения и размещать их на виджетах. Для этого у виджетов есть опция image, у холста - метод create_image.
Окна
Окна в tkinter создаются от классов Tk и Toplevel, который используется в случае программирования многооконных приложений. Метод geometry позволяет задавать размер окна и его положение на экране. С помощью метода resizable можно запретить изменение размеров окна пользователем. title задает название окна в заголовке.
Метод grid
Grid - сетка, таблица - один из трех управляющих размещением, или менеджеров геометрии, Tkinter. Реализуется через метод grid виджетов. Опции: row, column, rowspan, columnspan, padx, pady, ipadx, ipady, sticky. Grid более удобен при разработке сложных GUI, чем Pack.
Диалоговые окна
В модулях messagebox и filedialog пакета tkinter содержатся функции вызова стандартных диалоговых окон - askyesno, askyesnocancel, showerror, showinfo, askopenfilename, asksaveasfilename и др.
Виджет Menu
В tkinter меню создаются от класса Menu. Для привязки списков используется метод add_cascade, для создания команд - add_command. Для создания всплывающего меню используется метод post.
Метод place
В tkinter метод place размещает виджеты по координатам. Возможно указание как абсолютных координат (x и y), так относительных (relx и rely). Размеры виджетов также могут быть абсолютными (width, height) и относительными (relwidth, relheight).
Модуль tkinter.ttk
В состав пакета tkinter входит модуль ttk, содержащий классы более стилизованных виджет, темы их оформления, а также классы и методы для переопределения их внешнего вида.
Курс с примерами решений практических работ: pdf-версия