Олег Марков
Создание GUI в Python
Введение
Графические интерфейсы (GUI) позволяют создавать удобные и визуально понятные приложения на Python. Наиболее популярной библиотекой для этого является Tkinter — встроенный модуль для создания окон, кнопок, форм и других элементов интерфейса.
В этой статье мы разберём основы работы с Tkinter: создание окна, добавление кнопок и полей ввода, обработку событий и организацию логики приложения.
Если вы хотите детальнее изучить Python и освоить практическое создание графических интерфейсов, приходите на курс Основы Python. На курсе 209 уроков и 34 упражнения, AI-тренажёры для безлимитной практики с кодом, решение задач с ревью наставника и еженедельные встречи с менторами.
Создание окна
Начнём с базового окна приложения:
import tkinter as tk
root = tk.Tk()
root.title("Моё приложение")
root.geometry("300x200")
root.mainloop()Tk()создаёт главное окно.titleзадаёт название окна.geometryопределяет размер окна.mainloop()запускает цикл обработки событий.
Добавление кнопок и меток
Элементы интерфейса создаются через виджеты:
label = tk.Label(root, text="Привет, Python GUI!")
label.pack()
def on_click():
label.config(text="Вы нажали кнопку")
button = tk.Button(root, text="Нажми меня", command=on_click)
button.pack()Labelотображает текст.Buttonреагирует на нажатие черезcommand.pack()автоматически размещает элементы в окне.
Поля ввода и обработка данных
Добавим поле ввода и обработку текста:
entry = tk.Entry(root)
entry.pack()
def show_entry():
user_text = entry.get()
label.config(text=f"Вы ввели: {user_text}")
button_entry = tk.Button(root, text="Показать текст", command=show_entry)
button_entry.pack()Entry позволяет вводить данные пользователю, а get() возвращает текст для обработки.
Компоновка элементов
Tkinter предлагает несколько способов размещения виджетов: pack(), grid(), place(). Пример с сеткой:
tk.Label(root, text="Имя:").grid(row=0, column=0)
tk.Entry(root).grid(row=0, column=1)
tk.Button(root, text="Отправить").grid(row=1, columnspan=2)grid() позволяет точно управлять положением элементов по строкам и колонкам.
Работа с событиями и обратными вызовами
Можно привязывать действия к событиям, например, к нажатию клавиши:
def key_pressed(event):
label.config(text=f"Нажата клавиша: {event.char}")
root.bind("<Key>", key_pressed)bind связывает событие с функцией-обработчиком.
Заключение
Создание GUI на Python с помощью Tkinter даёт возможность быстро разрабатывать визуальные приложения: окна, кнопки, формы, обработка событий и взаимодействие с пользователем. Эти основы позволяют создавать собственные проекты и расширять функциональность с подключением баз данных, графики и внешних сервисов.
Для системного изучения Python и практического создания графических интерфейсов, работы с окнами, кнопками и формами рекомендуем курс Основы Python. В первых 3 модулях уже доступно бесплатное содержание — начните погружаться в мир Python и GUI-разработки прямо сегодня.
Частые ошибки
- Не запуск
mainloop()— окно не отображается. - Использование
pack()иgrid()одновременно в одном контейнере. - Неправильное присвоение функции в
command(например,command=on_click()вместоcommand=on_click).
Часто задаваемые вопросы
Можно ли менять размер окна динамически? Да, через
root.geometry()или методыresizable().Как обрабатывать несколько кнопок и полей ввода? Создайте отдельные функции для каждого действия или используйте
lambda.Можно ли использовать другие библиотеки GUI с Tkinter? Да, например,
ttkдля стильных виджетов илиPILдля работы с изображениями.
Постройте личный план изучения Python до уровня Middle — бесплатно!
Python — часть карты развития Backend
100+ шагов развития
30 бесплатных лекций
300 бонусных рублей на счет
Все гайды по Python
Лучшие курсы по теме

Основы Python
Антон Ларичев
Nest.js с нуля
Антон Ларичев