Tkinter – встроенный GUI-инструмент

онлайн тренер по питону
Онлайн-тренажер Python 3 для начинающих

Теория без воды. Задачи с автоматической проверкой. Подсказки на русском языке. Работает в любом современном браузере.

начать бесплатно

Введение

Tkinter — это стандартная библиотека для создания графических интерфейсов в Python. Она входит в стандартную поставку Python, не требует отдельной установки и поддерживает все основные ОС: Windows, Linux и macOS. Простота и минимальные зависимости делают Tkinter отличным выбором для небольших настольных приложений и инструментов.


Основная часть

Первое окно

import tkinter as tk

window = tk.Tk()
window.title("Простое окно")
window.geometry("300x200")
window.mainloop()

Виджеты в Tkinter

Кнопка

button = tk.Button(window, text="Нажми меня", command=lambda: print("Нажато"))
button.pack()

Метка

label = tk.Label(window, text="Привет, мир!")
label.pack()

Поле ввода

entry = tk.Entry(window)
entry.pack()

Текстовое поле

text = tk.Text(window)
text.pack()

Флажок и переключатели

check = tk.Checkbutton(window, text="Согласен")
radio = tk.Radiobutton(window, text="Выбор", value=1)
check.pack()
radio.pack()

Список и выпадающее меню

listbox = tk.Listbox(window)
listbox.insert(1, "Элемент 1")
listbox.pack()

option = tk.StringVar()
drop = tk.OptionMenu(window, option, "Один", "Два")
drop.pack()

Размещение элементов

pack()

Простой способ вертикального или горизонтального размещения.

grid()

label.grid(row=0, column=0)
entry.grid(row=0, column=1)

place()

Абсолютное позиционирование:

button.place(x=100, y=50)

Окна и диалоги

Новое окно (Toplevel)

new_win = tk.Toplevel(window)
new_win.title("Новое окно")

Сообщения и подтверждения

from tkinter import messagebox
messagebox.showinfo("Информация", "Это сообщение")

Работа с событиями

def on_key(event):
    print("Нажата клавиша:", event.char)

window.bind("<Key>", on_key)

Стилизация (через ttk)

from tkinter import ttk
style = ttk.Style()
style.configure("TButton", font=("Arial", 12), foreground="blue")

Примеры мини-проектов

  • Калькулятор

  • Текстовый редактор

  • Менеджер заметок

  • Простая база данных

  • Форма регистрации


Преимущества и недостатки

Плюсы:

  • Встроен в Python

  • Прост в изучении

  • Подходит для небольших GUI-проектов

Минусы:

  • Ограниченные визуальные возможности

  • Устаревший внешний вид по умолчанию

  • Меньше возможностей по сравнению с PyQt или Kivy

Описание всех ключевых функций и классов библиотеки tkinter для Python

Инициализация и структура приложения

Компонент Описание
Tk() Главное окно приложения. Все остальные виджеты добавляются в него.
mainloop() Запускает основной цикл обработки событий.
destroy() Закрывает окно и завершает приложение.

Основные виджеты

Виджет Описание
Label Метка — отображение текста или изображения.
Button Кнопка с действием при нажатии.
Entry Однострочное текстовое поле.
Text Многострочное текстовое поле.
Checkbutton Флажок (чекбокс).
Radiobutton Радиокнопка — выбор одного из вариантов.
Scale Ползунок для выбора значения.
Listbox Список элементов.
Canvas Холст для рисования графики (линии, фигуры и др.).
Frame Контейнер для других виджетов (группировка и вложенность).

Размещение виджетов

Метод Описание
pack() Автоматическое размещение по порядку (вверх/вниз/влево/вправо).
grid(row, column) Размещение по строкам и столбцам (табличная сетка).
place(x, y) Точное позиционирование по координатам.

Обработка событий

Метод / Принцип Описание
widget.bind(event, handler) Назначение функции-обработчика на событие (например, клик мыши).
command=функция Привязка функции к кнопке или чекбоксу.
get() Получение значения из Entry, Text, Checkbutton и др.
insert(), delete() Вставка и удаление текста.

Работа с окнами и диалогами

Функция / Класс Описание
Toplevel() Создаёт новое дочернее окно.
messagebox.showinfo() Отображение информационного окна.
filedialog.askopenfilename() Диалог открытия файла.
filedialog.asksaveasfilename() Диалог сохранения файла.
simpledialog.askstring() Диалог для ввода строки.

Работа с переменными

Класс Описание
StringVar() Строковая переменная для привязки к виджетам.
IntVar() Целочисленная переменная.
DoubleVar() Вещественная переменная.
BooleanVar() Логическая переменная.
variable=... Привязка переменной к Checkbutton, Radiobutton, OptionMenu и др.

Пример простого окна

python
import tkinter as tk root = tk.Tk() root.title("Пример") root.geometry("300x150") label = tk.Label(root, text="Привет, Tkinter!") label.pack() button = tk.Button(root, text="Закрыть", command=root.destroy) button.pack() root.mainloop()

Работа с меню

Элемент Описание
Menu(root) Главное меню.
menu.add_command(label, command) Пункт меню с действием.
menu.add_separator() Разделитель.
root.config(menu=menu) Установка меню в окне.

Установка

tkinter входит в стандартную библиотеку Python и не требует установки. Однако на некоторых системах Linux может потребоваться:

bash
sudo apt install python3-tk

Заключение

Tkinter — это надёжный инструмент для быстрой разработки GUI на Python. Он идеален для обучения, автоматизации, создания утилит и внутренних инструментов. Несмотря на простоту, с его помощью можно реализовать десятки полезных интерфейсов без сторонних зависимостей.