Введение
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 и др. |
Пример простого окна
Работа с меню
Элемент | Описание |
---|---|
Menu(root) |
Главное меню. |
menu.add_command(label, command) |
Пункт меню с действием. |
menu.add_separator() |
Разделитель. |
root.config(menu=menu) |
Установка меню в окне. |
Установка
tkinter
входит в стандартную библиотеку Python и не требует установки. Однако на некоторых системах Linux может потребоваться:
Заключение
Tkinter
— это надёжный инструмент для быстрой разработки GUI на Python. Он идеален для обучения, автоматизации, создания утилит и внутренних инструментов. Несмотря на простоту, с его помощью можно реализовать десятки полезных интерфейсов без сторонних зависимостей.