Основні методи Listbox

Презентація 9 клас Урок 55

Питання для самоперевірки

1. Поясніть алгоритм створення об’єкта класу Listbox.

2. Створіть об’єкт lab класу Listbox. Заповніть список 5 випадковими

цілими числами.

3. Виведіть у консоль число елементів у списку lab.

4. Виведіть у консоль індекс виділеного елемента списку lab.

5. Виведіть у консоль текст 3-го елемента в списку lab.

6. Видаліть 4-й елемент списку lab.


Вправа 33

Створити програму Покупки.

Завдання. Напишіть програму, що складається з двох списків Listbox.

Перший список містить перелік товарів, другий — перелік покупок. При натисканні на одну кнопку товар має переходити з одного списку в інший.

При натисканні на іншу кнопку — повертатися (людина передумала купувати). Передбачити можливість множинного вибору елементів списку і їх переміщення.

1) Створіть Python file із назвою Покупки. Завантажте модуль tkinter.

Створіть вікно програми із заголовком Покупки. Заверште програму оператором root.mainloop().

2) Додайте у вікно програми віджет box1 класу Listbox, занесіть до списку перелік товарів.


box1 = Listbox(selectmode = EXTENDED)

box1.grid(row = 0, column = 0, rowspan = 6)

products = ["ЯБЛУКА", "БАНАНИ", "МОРКВА", "ХЛІБ", "МОЛОКО", "КАВА", "ЧАЙ", "ЦУКОР", "ЧІПСИ", "ЦУКЕРКИ"]

for p in products:

box1.insert(END, p)


Додайте у вікно віджети btn1, btn2 класу Button

3) Створіть об’єкт box2 класу Listbox, залиште його порожнім.

4) Опишіть обробник події для кнопки btn1 (перенесення елементів зі списку box1 до списку box2).


def to_box2():

select = list(box1.curselection())

select.reverse()

for i in select:

box2.insert(END, box1.get(i))

box1.delete(i)

Підказка. У функції to_box2() кортеж обраних елементів перетворюється в список, після чого виконується його запис у зворотному порядку. Це робиться для того, щоб видалення елементів відбувалося з кінця списку.

Опишіть обробник події для кнопки btn2 (перенесення елементів зі списку box2 до списку box1).

5) Додайте віджет lab1 класу Label із заголовком Кількість покупок і віджет lab2 класу Label для виведення кількості елементів у списку box2.

Додайте до описів функцій оператори для зміни значення атрибуту text віджета lab2 на значення box_2.size().

k = box2.size()

lab2.config(text = str(k))