Об’єкти класу Listbox у графічному інтерфейсі
👩🏫Методичні акценти для вчителя • План проведення уроку на 45 хвНУШ▼
🎯 Очікувані результати навчання (НУШ):
Формування предметних компетентностей за темою «Об’єкти класу Listbox у графічному інтерфейсі», розвиток критичного мислення, вміння аналізувати причинно-наслідкові зв'язки та застосовувати набуті знання на практиці.
💬 Провокативне питання для старту:
Використайте блок «Гачок (Hook)» нижче для 2-хвилинної розминки з класом перед поясненням нового матеріалу.
⏱️ Рекомендований таймінг 45-хвилинного уроку:
Тема: § 30. Об’єкти класу Listbox у графічному інтерфейсі. Д/з: опрацювати матеріал уроку та завдання «У зошит» на платформі EZZ-SCHOOL BOOKS.
⚡ Фронтальне бліц-опитування класу на початку уроку (2 хв):
- Що є ключовим поняттям теми «Об’єкти класу Listbox у графічному інтерфейсі» і чому воно важливе?
- Де у повсякденному житті, науці чи IT ми стикаємося з цим явищем/алгоритмом?
- Яка найпоширеніша помилка виникає під час першого знайомства з матеріалом?
🏠 Диференційоване домашнє завдання:
- Базовий рівень (обов'язковий): опрацювати конспект і блок «У зошит».
- Достатній рівень: скласти власну шпаргалку та пройти MiniCheck.
- Високий / STEM: виконати симуляцію у лабораторії та скласти BossQuiz на 100 XP.
📊 Критерії формувального оцінювання:
Твоя місія на цей урок
Натискай на цілі у міру їх опанування:
- 1Опанувати віджет Listbox бібліотеки Tkinter для відображення списків у вікні програми.Опанувати ➔
- 2Підключати смугу вертикального прокручування Scrollbar до Listbox.Опанувати ➔
- 3Використовувати методи: insert(), delete(), get(), size(), curselection().Опанувати ➔
- 4Створювати інтерактивні віконні програми додавання та вилучення елементів.Опанувати ➔
💡 Як перетворити консольний код на справжній Windows-застосунок?
Виводити списки у чорне вікно консолі через print() — це рівень 7-го класу. Справжні сучасні програми мають вікна, кнопки та зручні списки з прокручуванням, де користувач може вибрати потрібний рядок мишкою. У Python за це відповідає класичний віджет Listbox із модулю tkinter!
1. Графічний інтерфейс користувача: віджет Listbox
Listbox (список) — це віджет графічної бібліотеки tkinter, призначений для відображення прокручуваного списку текстових пунктів, з якого користувач може вибирати один або кілька варіантів за допомогою миші.
Базова структура створення Listbox:
import tkinter as tk
root = tk.Tk()
root.title("Мій перший список")
root.geometry("300x250")
# Створення списку
box = tk.Listbox(root, selectmode=tk.SINGLE, font=("Arial", 11))
box.pack(padx=10, pady=10, fill=tk.BOTH, expand=True)
# Додавання елементів
cities = ["Київ", "Львів", "Харків", "Одеса", "Дніпро"]
for city in cities:
box.insert(tk.END, city)
root.mainloop()Список Listbox та Візуалізація на Полотні Canvas
💻 Ключові команди Tkinter:
from tkinter import * root = Tk() lb = Listbox(root, width=20, height=8) lb.insert(END, 25) # Вставка в кінець списку canvas = Canvas(root, width=320, height=220, bg="white") canvas.create_rectangle(x1, y1, x2, y2, fill="orange") # Малювання стовпчика root.mainloop()
2. Керування пунктами: додавання, видалення, вибір
Для динамічної взаємодії з віджетом Listbox використовуються спеціальні методи та системні константи:
| Метод / Властивість | Призначення | Приклад |
|---|---|---|
| box.insert(tk.END, text) | Додає новий пункт у самий кінець списку | box.insert(tk.END, entry.get()) |
| box.delete(0, tk.END) | Повністю очищує весь список від початку до кінця | box.delete(0, tk.END) |
| box.delete(tk.ANCHOR) | Видаляє виділений наразі користувачем пункт | box.delete(tk.ANCHOR) |
| box.curselection() | Повертає кортеж індексів виділених елементів | selected_indices = box.curselection() |
| box.get(index) | Отримує текст пункту за його числовим індексом | val = box.get(selected_indices[0]) |
3. Підключення смуги прокручування (Scrollbar)
Коли пунктів стає забагато (наприклад, сотні учнів), список потребує вертикальної прокрутки. В Tkinter зв'язок між Scrollbar та Listbox є двостороннім:
selectmode=tk.MULTIPLE або tk.EXTENDED дозволяє користувачу обирати відразу кілька пунктів з утриманням Shift або Ctrl (ідеально для вибору декількох предметів або товарів у кошик).
🎯 Міні-тест: вставка в Listbox
Яка команда правильно вставляє новий рядок у кінець списку lb у бібліотеці Tkinter?
Оберіть команду:
У зошит (за підручником)
Вправи з підручника до цієї теми уроку. Виконуй у робочий зошит або за комп'ютером за вказівкою вчителя:
Створення віконної програми Tkinter з віджетом Listbox
💡 Підказка від нас: Створити вікно, поле Entry для введення імені та Listbox зі смугою прокручування Scrollbar. Додати кнопки 'Додати' (insert) та 'Видалити' (delete).
Шпаргалка уроку (головне в один екран)
Усе найважливіше для повторення перед уроком або самостійною роботою
- lb.insert(END, text) — додати
- lb.delete(idx) — видалити
- lb.get(idx) — прочитати текст
- lb.size() — кількість рядків
- lb.bind('<<ListboxSelect>>', func)
- lb.curselection() — номер виділеного
Бос-тест: Tkinter — Віджет Listbox
Питання 1 з 3 • Завдай удару по босу теми