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

Курс "Tkinter. Программирование GUI на Python" знакомит с особенностями создания графического интерфейса пользователя средствами пакета tkinter языка программирования Python. Требует знания языка Python на уровне структурного программирования, желательно также владение азами ООП.

В курсе уделяется внимание работе с базовыми элементами интерфейса (виджетами). Изучаются основные свойства и методы кнопок, меток, текстовых полей, списков, флажков и радиокнопок, холста и меню.

Рассматриваются различные способы размещения виджетов в родительском окне: простой упаковкой, табличным разбиением и с помощью координат.

Изучаются настройки главного окна приложения, диалоговые окна, модуль tkinter.ttk.

Версия курса: Июнь, 2025 г.

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

Что такое Tkinter

input

Tkinter - это пакет модулей Python для создания приложений с графическим интерфейсом пользователя. Tkinter используется в Python по-умолчанию. В уроке рассматривается последовательность шагов создания GUI-программы: импорт, создание окна и виджетов, установка свойств, событий и др.

Виджеты Button, Label, Entry

input

В tkinter от класса Button создаются кнопки, от Label - метки, от Entry - однострочные текстовые поля для ввода. В уроке рассматривают основные свойства и методы данных виджетов.

Метод pack

input

В tkinter с помощью метода pack виджеты располагаются в родительском окне или фрейме. В уроке описываются опции pack, позволяющие конфигурировать виджеты относительно друг друга и относительно родителя.

Text – многострочное текстовое поле

input

В tkinter от класса Text создаются виджеты многострочного текстового поля. В уроке рассматриваются свойства и методы Text, настройка Scrollbar (скроллера), создание и конфигурирование тегов.

Переменные tkinter. Переменные для виджетов

input

В tkinter есть особые классы, от которых создаются объекты-переменные. Их связывают с виджетами для отслеживания состояния или изменения. Переменные Tkinter создаются от классов IntVar, BooleanVar, DoubleVar, StringVar, а также их родительского Variable.

Виджет Radiobutton (радиокнопка)

input

В tkinter от класса Radiobutton создаются радиокнопки (переключатели). С помощью экземпляров переменных Tkinter радиокнопки связываются в одну группу так, чтобы при включении одной, остальные выключались.

Виджеты Checkbutton – флажки, или чекбоксы

input

В tkinter от класса Checkbutton создаются флажки. В уроке описываются их основные свойства и методы, а также как с помощью переменных tkinter снимать данные с флажков.

Виджет Listbox

input

В tkinter от класса LIstbox создаются виджеты-списки, позволяющие выбирать один или множество элементов. В уроке рассматривается как заполнять список, удалять из него значения, считывать выбранные элементы.

Метод bind

input

В Tkinter метод bind связывает виджет, событие и функцию-обработчик: widget.bind(event, function). В уроке рассматриваются особенности передачи функций в метод bind. Лямбда-выражения позволяют передавать в функции-обработчики аргументы.

События

input

В GUI событиями являются клики и движение мышью, нажатие клавиш на клавиатуре, изменение виджетов. События - это особые объекты Tkinter, имеющие свои атрибуты: тип, виджет, по отношению к которому произошло событие и др.

Метод after ‒ отложенный вызов функции

input

В tkinter с помощью метода виджетов after создают задержку для вызова функции (отложенный вызов). Можно реализовать повторение действий через равные промежутки времени. Первый аргумент after - время в миллисекундах, второй - вызываемая через это время функция, последующие - аргументы для функции.

Canvas

input

От класса Canvas в tkinter создаются холсты, на которых можно с помощью специальных методов рисовать геометрические фигуры и размещать объекты. В уроке рассматривается создание на холсте геометрических примитивов (отрезков, многоугольников, эллипсов и др.) и текста.

Canvas. Идентификаторы, теги и анимация

input

Canvas - это холст, на котором можно программно выводить геометрические фигуры и другие объекты, к которым можно обращаться с помощью идентификаторов и тегов с целью изменения их свойств в процессе выполнения программы. Это позволяет, в том числе, делать холст интерактивным, создавать анимацию.

Класс PhotoImage. Добавление изображений на виджеты

input

В самом пакете tkinter есть возможность работать с изображениями - класс PhotoImage, который позволяет загружать в программу изображения и размещать их на виджетах. Для этого у виджетов есть опция image, у холста - метод create_image.

Окна

input

Окна в tkinter создаются от классов Tk и Toplevel, который используется в случае программирования многооконных приложений. Метод geometry позволяет задавать размер окна и его положение на экране. С помощью метода resizable можно запретить изменение размеров окна пользователем. title задает название окна в заголовке.

Метод grid

input

Grid - сетка, таблица - один из трех управляющих размещением, или менеджеров геометрии, Tkinter. Реализуется через метод grid виджетов. Опции: row, column, rowspan, columnspan, padx, pady, ipadx, ipady, sticky. Grid более удобен при разработке сложных GUI, чем Pack.

Диалоговые окна

input

В модулях messagebox и filedialog пакета tkinter содержатся функции вызова стандартных диалоговых окон сообщений (askyesno, askyesnocancel, showerror, showinfo) и работы с файлами (askopenfilename, asksaveasfilename и др.)

Виджет Menu. Создание главного меню окна

input

В tkinter меню создаются от класса Menu. Для привязки списков (создания подменю) используется метод add_cascade, для создания команд - add_command. Для создания всплывающего меню используется метод post.

Метод place

input

В tkinter метод place размещает виджеты по абсолютным (x и y) и относительным (relx и rely) координатам. Размеры виджетов также могут быть абсолютными (width, height) и относительными (relwidth, relheight).

Модуль tkinter.ttk

input

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

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




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