Створення об’єктів класу Listbox
Об’єкт класу Listbox дозволяє відображати список елементів, з якого користувач може вибрати один або декілька пунктів.
Для налаштування віджета Listbox можна задати в його конструкторі такі спільні для багатьох віджетів параметри, як bg, fg (колір фону; колір шрифту); font (настройки шрифту); width, height (висота та ширина елемента). За замовчуванням висота встановлюється в 10 рядків, ширина — 20 символів.
За замовчуванням у Listbox натисканням миші можна вибрати тільки один елемент. Якщо установити значення параметра selectmode = EXTENDED, можна вибрати декілька елементів, утримуючи натиснутою клавішу Ctrl.
Алгоритм створення віджету класу Listbox
Для наповнення списку Listbox елементами деякого списку слід у циклі for пройти по всіх елементах списку і додати кожний елемент до списку Listbox за допомогою методу insert():
<назва об’єкта>.insert(index, element)
Як перший аргумент методу insert() передається індекс вставлення елемента. Якщо ми хочемо послідовно додавати елементи, замість індекса можна використовувати значення END.
<назва об’єкта>.insert(index, element)
Як перший аргумент методу insert() передається індекс вставлення елемента. Якщо ми хочемо послідовно додавати елементи, замість індекса можна використовувати значення END.
Приклад:
Створимо віджет класу Listbox і відобразимо у віджеті список мов програмування (рис.1).
lbox = Listbox(width = 40, selectmode = EXTENDED)
lbox.pack() # Віджет розміщується у вікні
lbox = Listbox(width = 40, selectmode = EXTENDED)
lbox.pack() # Віджет розміщується у вікні
mova = ["Python", "JavaScript", "C#", "Java", "C/C++", "PHP", "Visual Basic.NET", "Ruby"]
# Заповнюється за допомогою методу insert()
for m in mova_progr:
lbox.insert(END, m)
# Заповнюється за допомогою методу insert()
for m in mova_progr:
lbox.insert(END, m)
Рис.1
Основні методи Listbox
Метод | Призначення | Приклад |
<назва_об’єкта>.insert(index,n) |
Вставляє в список Listbox
елемент n на місце з індексом index. |
lbox.insert(3, 100)
# Вставлено число 100 у рядок з індексом 3 (нумерація з 0).
|
<назва об’єкта>.curselection() |
Повертає кортеж* індексів
елементів, що виділені.
|
print(lbox.curselection())
# Буде виведено (1, 3, 6)
|
<назва об’єкта>.delete(n) |
Видаляє зі списку Listbox
елемент з індексом n.
|
lbox.delete(6)
#Видалено елемент з індексом 6.
|
<назва об’єкта>.delete(n, m) |
Видаляє зі списку Listbox
елементи, індекси яких належать діапазону від n до m.
|
lbox.delete(0,END)
#Видалено всі елементи зі списку lbox.
|
<назва об’єкта>.get(n) |
Повертає текст елемента
з індексом n.
|
print(lbox.get(3))
# Буде виведено Java
|
<назва об’єкта>.get(n, m) |
Повертає кортеж* елементів
списку Listbox, індекси яких належать діапазону від n до m.
|
elem = list(lbox.get(0, END))
#Створено список elem з усіх елементів
списку Listbox.
|
<назва об’єкта>.size() |
Повертає число елементів
у списку Listbox.
|
k = lbox.size() print(k) # Буде виведено 8 |
*Кортеж (англ. tuple) в Python— це незмінювана послідовність елементів будь-яких типів, узята в круглі дужки.
Джерела:
Інформатика : підруч. для 9 кл. закл. загал. серед. освіти / [О. О. Бондаренко, В. В. Ластовецький, О. П. Пилипчук, Є. А. Шестопалов]. — Харків : Вид-во «Ранок», 2022