курси програмування для дітей безкоштовно

17. Форми Tkinter у Python

Форми Tkinter у Python | Python для дітей | ITisFuture

Настав час створити перші графічні форми Tkinter у Python. Tkinter — це крута бібліотека, яка дозволяє робити справжні вікна, кнопки, текстові поля й інші елементи інтерфейсу.
Скажемо “бувай” нудній консолі — тепер усе буде красиво та кольорово! 🎨🖱️

Про форми Tkinter

Уявіть, що ви хочете зробити власну програму, де можна натискати кнопки, бачити повідомлення або навіть вводити текст. Для цього не обов’язково бути профі в дизайні — достатньо знати Tkinter. Це бібліотека у Python, яка дозволяє створювати справжні вікна з кнопками, написами, полями вводу та багатьма іншими елементами. Замість тексту в консолі ви зможете робити все мишкою, як у справжніх додатках. Ось кілька прикладів простих форм:

Сьогодні ми розглянемо елементи Label – підпис та Button – кнопка.

Label — підпис (текст на формі)

label = tk.Label(root, text="Привіт, світе!")
Властивість Що робить Приклад
text Текст, який відображається text="Привіт!"
bg Колір фону підпису bg="yellow"
fg Колір тексту fg="blue"
font Шрифт тексту (тип, розмір, стиль) font=("Arial", 14, "bold")
width Ширина в символах width=20
height Висота в рядках height=2

Button — кнопка

button = tk.Button(root, text="Натисни мене!")
Властивість Що робить Приклад
text Текст на кнопці text="Пуск"
bg Колір кнопки bg="green"
fg Колір тексту на кнопці fg="white"
font Шрифт тексту font=("Comic Sans MS", 12)
command Функція, яка викликається при натисканні command=my_function
width Ширина кнопки в символах width=15
height Висота в рядках height=2

Практика. Форми Tkinter у Python

Не натискай мене!

1: Для початку створимо пусту форму. Вкажемо її розмір та колір. Змініть колір та розмір на свій власний.

import tkinter as tk
import random
# функції

# основна програма
window = tk.Tk() # Створюємо форму
window.title("Кнопка") # Назва форми
window.geometry("400x300")  # Розмір
window.configure(bg="#CCF2FF")  # Колір фону

# Кінець
window.mainloop() # Запуск форми
меми про ІТ та програмування для дітей | Python для дітей | ITisFuture

2: У блоці “функції” Напишімо повідомлення, які будуть виводитися, якщо на кнопку натиснути та функцію, яка за це відповідає. Поки повідомлень всього 2, пізніше ми напишемо цікавіші повідомлення

# Повідомлення після натискання кнопки
reactions = [
    "О, ні!",
    "Ой!"
]

def naughty_button():
    label2.config(text=random.choice(reactions))

3: У блоці “Основна програма” створимо три елементи:
1. Напис-попередження, що не можна натискати кнопку.
2. Кнопку. Якщо її натиснути, то запуститься функція naughty_button.
3. Напис-реакція на натискання кнопки.

# Попереджувальний текст
label1 = tk.Label(window, text="‼ Не натискай цю кнопку ‼",
                         bg="#CCF2FF", fg="#CC0000")
label1.pack(pady=30)

# Заборонена кнопка
button = tk.Button(window, text="Не натискай! 😬",
                   bg="#FF6666", fg="white", command=naughty_button)
button.pack()

# Місце для реакції
label2 = tk.Label(window, text="", bg="#CCF2FF", fg="#003366")
label2.pack(pady=30)

Чудово! Час запустити форму. Якщо все вірно, ви побачите вікно з кнопкою. Спробуйте натиснути на неї та подивитися, чи побачите ви повідомлення

Форми Tkinter у Python | Python для дітей | ITisFuture

4: Тепер додайте цікавіші реакції на кнопку. Змініть список reactions, допишіть туди 4-5 варіантів реакцій. Протестуйте нові реакції Ось приклад ідей:

5: Змініть кольори на формі.

6 (Додаткове): Створіть кнопку з випадковим вітанням. При натисканні кнопки має з’являтися випадкове привітання.

Кнопки-рекомендації

7: У блоці “функції” додайте нову функцію, яка буде рекомендувати книгу. Змініть назву книги на ту, яку б ви порекомендували прочитати.

# рекомендації
def recommend(topic, color):
    if topic=="book":
        myText="Book: Harry Potter" 
    alisa.config(text=myText)
    alisa.config(bg=color)

8: У блоці “Основна програма” додайте кнопку Books, при натисканні на яку має рекомендуватися книга. Рекомендація з’явиться у полі label під назвою alisa.

# Рекомендації
borys=tk.Button(window, text="Books", bg="yellow",
          command= lambda: recommend("book", "yellow"))
borys.pack()
alisa= tk.Label(window, text="")
alisa.pack(pady=30)

9: Додайте кнопки для рекомендацій (копія кнопки borys): Фільм, Музика, Подорож. Допишіть функцію recommend, щоб вона рекомендувала все зазначене.

Форми Tkinter у Python | Python для дітей | ITisFuture

10: Змініть кольори та розмір форми

Уроки програмування для дітей. Домашня робота

Домашня робота

1: Змініть форму класної роботи: назву форми, розмір форми, кольори на формі. Додайте 3-5 варіантів реакції для програми “Не натискай цю кнопку”

2: Додайте кнопки для рекомендацій (копія кнопки borys): Фільм, Музика, Подорож. Допишіть функцію recommend, щоб вона рекомендувала фільм, якщо натиснули кнопку Фільм, музику….

3: Створіть кнопки: Новинки у світі технологій, Новини спорту, Погода, Курс валют. По кліку на кожну кнопку повинна писатися новина. Для “Новинки у світі технологій” має з’явитися новина про подію у світі технологій (загугліть якусь новину). Для “Погода” має з’явитись повідомлення про погоду на завтра. Для “Курс валют” має з’явитися повідомлення про курс будь-якої з валют.

меми про ІТ та програмування для дітей | Python для дітей | ITisFuture
Уроки програмування для дітей ускладнені завдання level up

Level Up!
Форми Tkinter у Python

1: Створіть кнопку-клікер. Коли натискаєш на кнопку, на форму має виводитись кількість натискань.

Підказка: створіть змінну clicks=0 на початку програми. А на початку функції, яка рахуватиме кліки, додайте рядок global clicks. Тоді функція буде використовувати змінну, яка відома всій програмі.

2: Створіть список привітань або побажань 3-5 шт. (Наприклад: “Котик каже тобі «няв» і дарує обійми 🐱”) і список кольорів. Створіть кнопку, яка виводитиме випадкове привітання випадкового кольору тексту і випадкового кольору фону.

меми про ІТ та програмування для дітей | Python для дітей | ITisFuture

Більше команд дивіться тут . Не зупиняйтесь у вивченні Python! До зустрічі на наступних уроках!

Залишити коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *