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-версия


Tkinter. Программирование GUI на Python




Все разделы сайта