Створення об’єктів класу Listbox
Об’єкт класу Listbox дозволяє відображати список елементів, з якого користувач може вибрати один або декілька пунктів.
 
Для налаштування віджета Listbox можна задати в його конструкторі такі спільні для багатьох віджетів параметри, як bg, fg (колір фону; колір шрифту); font (настройки шрифту); width, height (висота та ширина елемента). За замовчуванням висота встановлюється в 10 рядків, ширина — 20 символів.
 
За замовчуванням у Listbox натисканням миші можна вибрати тільки один елемент. Якщо установити значення параметра selectmode = EXTENDED, можна вибрати декілька елементів, утримуючи натиснутою клавішу Ctrl.

Алгоритм створення віджету класу Listbox   

2.PNG
 
Для наповнення списку Listbox елементами деякого списку слід у циклі for пройти по всіх елементах списку і додати кожний елемент до списку Listbox за допомогою методу insert():
<назва об’єкта>.insert(index, element)
Як перший аргумент методу insert() передається індекс вставлення елемента. Якщо ми хочемо послідовно додавати елементи, замість індекса можна використовувати значення END.
Приклад:
Створимо віджет класу Listbox і  відобразимо у віджеті список мов програмування (рис.1).
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:
               lbox.insert(END, m)
3.PNG
Рис.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