1. Введение в Tkinter: установка, окно, цикл событий
Введение в Tkinter: установка, окно, цикл событий
Tkinter — это стандартная библиотека Python для создания графических интерфейсов (GUI). Она поставляется вместе с Python и использует GUI-набор инструментов Tk.
В этой статье вы:
mainloop()Что такое GUI-приложение на Tkinter
Минимальное GUI-приложение на Tkinter почти всегда состоит из трёх обязательных частей:
Tk).mainloop()), чтобы окно реагировало на действия пользователя.Установка и проверка Tkinter
Во многих случаях Tkinter уже установлен вместе с Python. Но на некоторых системах (особенно Linux) пакет может быть не установлен по умолчанию.
Проверка: установлен ли Tkinter
Создайте файл check_tkinter.py и запустите:
Если вы увидели текст Tkinter доступен и не было ошибок — всё готово.
Установка по операционной системе
| ОС | Что сделать |
|---|---|
| Windows | Обычно Tkinter ставится вместе с Python. Рекомендуемый вариант — установить Python с официального сайта Python |
| macOS | Вариант с официального сайта Python обычно включает Tkinter |
| Linux (Debian/Ubuntu) | Установить пакет python3-tk через менеджер пакетов |
Пример для Debian/Ubuntu:
Если вы используете другую сборку Python (например, из менеджеров окружений), важно помнить: Tkinter — это не пакет pip, а часть поставки Python плюс системные зависимости Tk.
Первое окно: минимальное приложение
Создадим самое простое приложение, которое показывает пустое окно.
Что здесь происходит:
import tkinter as tk — импорт библиотеки (псевдоним tk используют почти всегда).root = tk.Tk() — создание главного окна. В Tkinter принято называть его root.root.mainloop() — запуск цикла событий. Без него окно либо не появится, либо сразу закроется.> "The mainloop() method puts everything on the display and responds to user input until the program terminates." (Python docs: tkinter)
Настройка окна: заголовок, размер, запрет изменения размера
Окно можно настроить базовыми методами.
Разбор:
title("...") — текст в заголовке окна.geometry("400x300") — размер окна в пикселях: ширина x высота.resizable(False, False) — запрет изменять размер по горизонтали и вертикали.Что такое цикл событий и почему он важен
GUI-приложение живёт в режиме ожидания событий:
Чтобы приложение реагировало на это, Tkinter запускает цикл обработки событий. В Tkinter он стартует вызовом root.mainloop().
!Блок-схема показывает, как mainloop ждёт события и вызывает обработчики
Важно понимать ограничение: пока работает mainloop(), ваш код не выполняется «сверху вниз» как в обычном скрипте. Вместо этого выполняются обработчики событий — функции, которые вызываются в ответ на действия пользователя.
Первое событие: кнопка и обработчик
Сделаем кнопку, которая печатает сообщение в консоль.
Ключевые идеи:
on_click — обычная функция Python.command=on_click передаёт ссылку на функцию, а не результат её вызова.pack() размещает виджет в окне. О способах размещения (геометрических менеджерах) мы подробно поговорим в следующих материалах.Частая ошибка новичков:
Здесь on_click() вызывается сразу при создании кнопки, а command получает не функцию, а результат её выполнения.
Как корректно закрывать приложение
Обычно достаточно закрыть окно стандартной кнопкой. Но иногда нужно выполнить действия при закрытии (например, сохранить данные).
protocol("WM_DELETE_WINDOW", ...) позволяет перехватить событие закрытия окна и выполнить свой обработчик.
Типичные проблемы и быстрые решения
ModuleNotFoundError: No module named 'tkinter'.Причины и решения:
mainloop() или скрипт запускается так, что процесс сразу завершается.command передана функция с вызовом () вместо ссылки на функцию.Итоги
Теперь вы умеете:
Tk, менять заголовок и размерmainloop() и понимать, зачем он нуженВ следующих материалах курса мы будем расширять приложение: познакомимся с базовыми виджетами, научимся правильно располагать элементы интерфейса и связывать UI с данными программы.