Перейти к содержанию

Создание настольных приложений с tkinter

Начало урока

Создание настольных приложений с tkinter

Превратите свои навыки Python в окна, кнопки и интерактивные инструменты

Главная идея: Все программы, которые вы писали до сих пор, общались с пользователем через терминал. tkinter — это встроенный в Python набор инструментов для графических интерфейсов (GUI). Вы описываете окно и виджеты внутри него, привязываете обычные функции Python как обработчики событий и передаёте управление циклу событий, который ждёт кликов и нажатий клавиш. Без установки, без предварительного изучения фреймворка: tkinter поставляется вместе с Python.
К концу вы сможете:
  • создать главное окно через tkinter.Tk() и запустить его с помощью mainloop(),
  • разместить на нём виджеты Label, Button и Entry,
  • связать кнопку с функцией Python через command=,
  • читать и показывать текст с помощью Entry.get() и StringVar,
  • расставлять виджеты с помощью менеджеров компоновки pack и grid,
  • собрать небольшое интерактивное приложение, например конвертер единиц или счётчик кликов.

1. Корневое окно и цикл событий

Программа на tkinter всегда начинается с одного корневого окна, создаваемого вызовом tkinter.Tk(). Этот объект — окно верхнего уровня и родитель каждого добавляемого виджета. В самом конце вы вызываете его метод mainloop(), который передаёт управление циклу событий tkinter: бесконечному циклу, который ждёт, пока операционная система сообщит о событии (клик, клавиша, изменение размера), направляет каждое к нужному обработчику, перерисовывает экран и повторяет это до закрытия окна.

import tkinter as tk

root = tk.Tk()                 # создаём главное окно
root.title("My First App")     # текст в заголовке окна
root.geometry("300x120")       # ширина x высота в пикселях

label = tk.Label(root, text="Hello, desktop!")
label.pack(padx=20, pady=20)   # помещаем на окно

root.mainloop()                # запускаем цикл событий (блокирует здесь)

Обратите внимание: mainloop() — последняя строка. Она блокирует: программа останавливается на ней и продолжается дальше только после того, как пользователь закроет окно. Поэтому всё интерактивное должно быть настроено до этого вызова и управляться обработчиками во время него.

Продолжите этот урок на YourAIZone

В полном уроке — объяснение целиком, разобранные примеры, частые ошибки, тесты с мгновенной проверкой и ИИ-репетитор. Начните сразу как гость или создайте аккаунт, чтобы сохранять прогресс.

В полном уроке

  • Объяснение целиком
  • Разобранные примеры
  • Частые ошибки и как их избежать
  • Тестовые вопросы: 15
  • ИИ-репетитор, который отвечает на вопросы по теме
  • Отслеживание прогресса для ученика, родителей и учителя