Справочник по Tkinter
Назначение
Справочник-шпаргалка по Tkinter. Не заменяет пошаговое обучение. Курс: Tkinter и GUI, Первая программа на Tkinter.
Импорт и корневое окно
import tkinter as tk
from tkinter import ttk # темизированные виджеты
root = tk.Tk() # главное окно
child = tk.Toplevel() # дочернее окно
Метод Tk | Действие |
|---|---|
title(str) | Заголовок окна |
geometry("WxH+X+Y") | Размер и позиция |
minsize(w, h) | Минимальный размер |
resizable(w, h) | Разрешить изменение размера |
mainloop() | Цикл событий |
destroy() | Закрыть окно |
after(ms, func) | Отложенный вызов |
protocol("WM_DELETE_WINDOW", fn) | Обработчик закрытия крестиком |
Виджеты
| Класс | Назначение |
|---|---|
Label | Текст / изображение |
Button | Кнопка (command=callable) |
Entry | Однострочный ввод |
Text | Многострочный ввод |
Listbox | Список строк |
Checkbutton | Флажок |
Radiobutton | Переключатель группы |
Scale | Ползунок |
Spinbox | Число со стрелками |
Frame / LabelFrame | Контейнер |
Canvas | Рисование, кастомная графика |
Menu | Меню |
PanedWindow | Разделители панелей |
ttk: Treeview, Notebook (вкладки), Progressbar, Combobox — единый стиль ОС.
Переменные привязки
var = tk.StringVar(value="начало")
entry = tk.Entry(root, textvariable=var)
var.set("новое")
print(var.get())
| Класс | Тип |
|---|---|
StringVar | str |
IntVar | int |
DoubleVar | float |
BooleanVar | bool |
Геометрия
pack
widget.pack(side=tk.TOP, fill=tk.X, expand=True, padx=5, pady=5)
side: TOP, BOTTOM, LEFT, RIGHT.
grid
widget.grid(row=0, column=1, sticky="ew", padx=4, pady=4)
child.grid_columnconfigure(0, weight=1)
sticky: n, s, e, w или комбинации ("ew").
place
Абсолютное или относительное позиционирование — для редких случаев.
События
def on_click(event):
print(event.x, event.y)
btn.bind("<Button-1>", on_click)
entry.bind("<Return>", lambda e: submit())
root.bind("<Control-q>", lambda e: root.destroy())
| Шаблон | Событие |
|---|---|
<Button-1> | ЛКМ |
<Double-Button-1> | Двойной клик |
<Key> | Клавиша |
<FocusIn> / <FocusOut> | Фокус |
<Configure> | Изменение размера |
Диалоги (tkinter.messagebox, filedialog)
from tkinter import messagebox, filedialog, colorchooser
messagebox.showinfo("Заголовок", "Текст")
messagebox.askyesno("?", "Продолжить?")
path = filedialog.asksaveasfilename(defaultextension=".txt")
color = colorchooser.askcolor()
Паттерны
Блокировка UI при долгой задаче — работа в потоке, обновление UI через root.after(0, callback) из потока (не вызывайте виджеты напрямую из фонового потока).
Класс приложения:
class App(tk.Tk):
def __init__(self):
super().__init__()
self.build_ui()
def build_ui(self):
...
См. также
- Turtle — обучающая графика
- Десктопные приложения
См. также
Другие статьи этого же раздела в боковом меню (как на странице «О разделе»). Python как язык общего назначения - философия, ключевые свойства и области применения в современной разработке. Фундамент для начинающего программиста - что повторить, как работать, чего ожидать. Принципы, которые делают код понятным, поддерживаемым и расширяемым. Примеры реализации типовых приложений. Каждый пример сопровождается разбором ключевых концепций языка. Наверняка каждый новичок, решивший перейти в что-то стандартное в Python, открывает себе этот файл. Как устроен Python, что входит в комплект и какие есть реализации. Структурные каркасы для построения приложений, как они устроены. Фреймворки, библиотеки, инструменты сборки, среды выполнения, системы тестирования и специализированные платформы, объединённые общей философией ясности, простоты и гибкости. Что такое модули, как устроены механизмы импорта и загрузки. Управление изолированной средой и зависимостями проекта. История Python - ключевые этапы развития языка, сообщества и экосистемы инструментов. Философия Python не зафиксирована в официальных стандартах, но она глубоко интегрирована в язык, его стандартную библиотеку, документацию и культуру разработчиков.Python - язык общего назначения
Что требуется знать перед началом изучения языка программирования Python
Рекомендации по разработке на Python
Простые приложения на Python
Встроенный модуль builtins и типизация в Python
Архитектура интерпретатора Python
Фреймворки и библиотеки Python
Экосистема Python-приложений
Модули в Python
Виртуальные окружения и управление зависимостями
История языка Python
Философия Python - Zen of Python