📖 Вступ до TkПітончика
TkПітончик - це інтерактивне середовище для вивчення програмування на Python з використанням бібліотеки Tkinter українською мовою. Проєкт дозволяє створювати графічні інтерфейси прямо у браузері без необхідності встановлювати Python.
💡 Особливості: 🇺🇦 Повністю українськомовний інтерфейс • 🚀 Виконання коду в браузері через WebAssembly • 📝 Підсвічування синтаксису українською • 💾 Автоматичне збереження коду • 🎨 Кілька тем оформлення • 🖼️ Візуальне створення GUI
🚀 Швидкий старт
Перша програма
from tkinter_ua import *
# Створюємо головне вікно
корінь = Tk()
корінь.налаштувати(назва="Моя перша програма", ширина=400, висота=300)
# Додаємо мітку з текстом
мітка = Мітка(корінь, текст="Привіт, Tkinter!")
мітка.пакувати(padx=20, pady=20)
# Додаємо кнопку для закриття
кнопка = Кнопка(корінь, текст="Закрити", команда=корінь.закрити)
кнопка.пакувати(padx=20, pady=10)
# Запускаємо головний цикл
корінь.головний_цикл()
Структура програми Tkinter
Кожна програма Tkinter складається з трьох основних частин:
Імпорт бібліотеки
Створення та налаштування вікна
Створення елементів інтерфейсу
Запуск головного циклу
🖼️ Елементи інтерфейсу
Tk
Головне вікно програми
корінь = Tk()
корінь.налаштувати(назва="Заголовок", ширина=800, висота=600)
Мітка
Відображення тексту
мітка = Мітка(корінь, текст="Текст мітки")
мітка.пакувати()
Кнопка
Кнопка для взаємодії
кнопка = Кнопка(корінь, текст="Натисни мене", команда=функція)
кнопка.пакувати()
ПолеВводу
Поле для введення тексту
поле = ПолеВводу(корінь)
поле.пакувати()
Текст
Багаторядкове текстове поле
текст = Текст(корінь)
текст.пакувати()
Полотно
Область для малювання
полотно = Полотно(корінь, width=400, height=300, bg="white")
полотно.пакувати()
Рамка
Контейнер для елементів
рамка = Рамка(корінь)
рамка.пакувати()
Меню
Меню програми
меню = Меню(корінь)
Toplevel
Додаткове вікно
нове_вікно = Toplevel()
нове_вікно.налаштувати(назва="Додаткове вікно")
⚙️ Методи та властивості
Загальні методи для всіх елементів
пакувати()
Розміщення елемента
елемент.пакувати(padx=10, pady=10, side="left", fill="both")
Параметри: padx, pady - відступи; side - сторона розміщення ("left", "right", "top", "bottom"); fill - заповнення ("x", "y", "both")
сітка()
Розміщення у сітці
елемент.сітка(row=0, column=0, padx=5, pady=5)
налаштувати()
Зміна властивостей
елемент.налаштувати(текст="Новий текст")
Специфічні методи
Для ПолеВводу та Текст
текст = поле.отримати() # Отримати текст
поле.вставити(0, "Текст") # Вставити текст
поле.очистити() # Очистити поле
Для Полотно
# Малювання фігур
полотно.створити_лінію(x1, y1, x2, y2, fill="black", width=2)
полотно.створити_овал(x1, y1, x2, y2, fill="red")
полотно.створити_прямокутник(x1, y1, x2, y2, fill="blue")
# Робота з об'єктами
полотно.перемістити(обєкт, dx, dy)
полотно.видалити("all") # Видалити всі об'єкти
полотно.coords(обєкт) # Отримати координати
# Обробка подій
полотно.привязати("", функція)
полотно.привязати("", функція)
Для Меню
меню.додати_command(label="Пункт", command=функція)
меню.додати_cascade(label="Підменю", menu=підменю)
меню.додати_separator()
Події миші та клавіатури
def обробник_події(подія):
print(f"Координати: {подія.x}, {подія.y}")
# Прив'язка подій
елемент.привязати("", обробник_події) # Клік лівою кнопкою
елемент.привязати("", обробник_події) # Перетягування
елемент.привязати("", обробник_події) # Подвійний клік
💾 Практичні приклади
🧮 Калькулятор
from tkinter_ua import *
def обчислити():
try:
результат = eval(поле.отримати())
поле.очистити()
поле.вставити(0, str(результат))
except:
поле.очистити()
поле.вставити(0, "Помилка!")
корінь = Tk()
корінь.налаштувати(назва="Калькулятор", ширина=300, висота=400)
поле = ПолеВводу(корінь)
поле.пакувати(padx=10, pady=10, fill="both")
кнопки_рамка = Рамка(корінь)
кнопки_рамка.пакувати(padx=10, pady=10)
кнопки = [
'7', '8', '9', '/',
'4', '5', '6', '*',
'1', '2', '3', '-',
'0', '.', '=', '+'
]
for i, текст in enumerate(кнопки):
row = i // 4
col = i % 4
if текст == '=':
кнопка = Кнопка(кнопки_рамка, текст=текст, команда=обчислити)
else:
def створ_команду(т=текст):
поле.вставити("end", т)
кнопка = Кнопка(кнопки_рамка, текст=текст, команда=створ_команду)
кнопка.сітка(row=row, column=col, padx=2, pady=2)
корінь.головний_цикл()
🎨 Програма для малювання
from tkinter_ua import *
def почати_малювати(подія):
global остання_x, остання_y
остання_x, остання_y = подія.x, подія.y
def малювати(подія):
global остання_x, остання_y
полотно.створити_лінію(остання_x, остання_y, подія.x, подія.y,
fill=колір, width=товщина)
остання_x, остання_y = подія.x, подія.y
def змінити_колір(новий_колір):
global колір
колір = новий_колір
def змінити_товщину(нова_товщина):
global товщина
товщина = нова_товщина
корінь = Tk()
корінь.налаштувати(назва="Малювалка", ширина=800, висота=600)
# Змінні
колір = "black"
товщина = 2
остання_x, остання_y = None, None
# Полотно для малювання
полотно = Полотно(корінь, width=600, height=400, bg="white")
полотно.пакувати(padx=10, pady=10, side="left")
полотно.привязати("", почати_малювати)
полотно.привязати("", малювати)
# Панель інструментів
панель = Рамка(корінь)
панель.пакувати(padx=10, pady=10, side="right")
Мітка(панель, text="Колір:").пакувати()
for c in ["black", "red", "green", "blue", "yellow"]:
Кнопка(панель, text=c, bg=c,
command=lambda col=c: змінити_колір(col)).пакувати()
Мітка(панель, text="Товщина:").пакувати()
for t in [1, 2, 5, 10]:
Кнопка(панель, text=str(t),
command=lambda thick=t: змінити_товщину(thick)).пакувати()
Кнопка(панель, text="Очистити",
command=lambda: полотно.видалити("all")).пакувати()
корінь.головний_цикл()
📝 Текстовий редактор з меню
from tkinter_ua import *
def новий_файл():
текст.видалити("1.0", "end")
def зберегти_файл():
вміст = текст.отримати("1.0", "end")
print("Зберігаємо файл...")
print(вміст)
корінь = Tk()
корінь.налаштувати(назва="Текстовий редактор", ширина=600, висота=400)
# Створюємо меню
меню = Меню(корінь)
# Меню "Файл"
файл_меню = Меню(меню, tearoff=0)
меню.додати_cascade(label="Файл", menu=файл_меню)
файл_меню.додати_command(label="Новий", command=новий_файл)
файл_меню.додати_command(label="Зберегти", command=зберегти_файл)
файл_меню.додати_separator()
файл_меню.додати_command(label="Вихід", command=корінь.закрити)
# Текстове поле
текст = Текст(корінь)
текст.пакувати(padx=10, pady=10, fill="both", expand=True)
корінь.головний_цикл()
⚽ Анімація з м'ячем
from tkinter_ua import *
def запустити_гру():
корінь = Tk()
корінь.налаштувати(назва="Гра з м'ячем", ширина=400, висота=350)
полотно = Полотно(корінь, width=400, height=300, bg="lightblue")
полотно.пакувати(padx=10, pady=10)
# Створюємо м'яч
м_яч = полотно.створити_овал(190, 140, 210, 160, fill="red")
# Оголошення змінних
швидкість_x = 3
швидкість_y = 3
def рухати_м_яч():
nonlocal швидкість_x, швидкість_y
полотно.перемістити(м_яч, швидкість_x, швидкість_y)
позиція = полотно.coords(м_яч)
# Відбивання від стін
if позиція[0] <= 0 or позиція[2] >= 400:
швидкість_x = -швидкість_x
if позиція[1] <= 0 or позиція[3] >= 300:
швидкість_y = -швидкість_y
# Використовуємо через для наступного кадру
корінь.через(30, рухати_м_яч)
# Запускаємо гру
рухати_м_яч()
корінь.головний_цикл()
запустити_гру()
💡 Поради та підказки
Гарячі клавіші в редакторі
F5 або Ctrl+Enter
Запустити код
Ctrl+/
Закоментувати/розкоментувати код
Ctrl+Space
Показати підказки
Корисні поради
Завжди викликайте головний_цикл() - без цього вікно не з'явиться
Використовуйте через() для анімацій - це дозволяє створювати плавний рух
Робіть відступи у коді - це покращує читабельність
Тестуйте часто - запускайте код під час написання
Використовуйте коментарі - документуйте свій код
Розв'язання проблем
Проблема: Код не запускається
Перевірте, чи немає синтаксичних помилок; Переконайтеся, що всі дужки закриті; Перевірте відступи
Проблема: Вікно не з'являється
Переконайтеся, що викликано головний_цикл() ; Перевірте, чи правильно створено вікно Tk()
Проблема: Елементи не відображаються
Переконайтеся, що викликано метод розміщення (пакувати() або сітка() ); Перевірте правильність параметрів
Додаткові можливості
Теми оформлення - змінюйте вигляд програми (світла, темна, синя, зелена)
Автозбереження - код автоматично зберігається при змінах
Приклади - використовуйте готові приклади для навчання
Експорт/імпорт - зберігайте свої проекти у файли
🎉 Вітаємо!
Тепер ви знаєте основи роботи з TkПітончиком. Експериментуйте, створюйте власні проекти та насолоджуйтесь програмуванням українською мовою!
Перейти до презентації →