Напишите программу на языке Python, которая содержит два виджета списка (Listbox). Первый список будет содержать

Напишите программу на языке Python, которая содержит два виджета списка (Listbox). Первый список будет содержать перечень товаров, который будет задан программно. Второй список изначально будет пустым и будет представлять собой перечень покупок. При нажатии на одну кнопку товар должен перемещаться из первого списка во второй. При нажатии на вторую кнопку товар должен возвращаться обратно (если человек передумал покупать). Возможность выбора нескольких элементов списка и перемещения их также должна быть предусмотрена.
Vaska

Vaska

Конечно! Вот решение задачи:

python
import tkinter as tk

def move_to_shopping_list():
selected_items = listbox_products.curselection()
for index in selected_items[::-1]:
item = listbox_products.get(index)
listbox_products.delete(index)
listbox_shopping_list.insert(0, item)

def move_to_product_list():
selected_items = listbox_shopping_list.curselection()
for index in selected_items[::-1]:
item = listbox_shopping_list.get(index)
listbox_shopping_list.delete(index)
listbox_products.insert(0, item)

# Создание окна
window = tk.Tk()

# Создание виджетов списка товаров и списка покупок
listbox_products = tk.Listbox(window, selectmode=tk.MULTIPLE)
listbox_shopping_list = tk.Listbox(window, selectmode=tk.MULTIPLE)

# Добавление товаров в список товаров
products = ["Яблоко", "Банан", "Апельсин", "Груша", "Киви"]
for product in products:
listbox_products.insert(tk.END, product)

# Создание и настройка кнопок
button_to_shopping_list = tk.Button(window, text=">>", command=move_to_shopping_list)
button_to_product_list = tk.Button(window, text="<<", command=move_to_product_list)

# Размещение виджетов на окне
listbox_products.pack(side=tk.LEFT)
listbox_shopping_list.pack(side=tk.LEFT)
button_to_shopping_list.pack(side=tk.LEFT)
button_to_product_list.pack(side=tk.LEFT)

# Запуск главного цикла окна
window.mainloop()


Давайте разберемся в решении:

1. Сначала мы импортируем библиотеку `tkinter`, которая предоставляет нам инструменты для создания графического интерфейса пользователя.

2. Затем мы определяем две функции `move_to_shopping_list` и `move_to_product_list`. Функция `move_to_shopping_list` вызывается при нажатии кнопки ">>" и перемещает выбранные товары из списка товаров в список покупок. Функция `move_to_product_list` вызывается при нажатии кнопки "<<" и перемещает выбранные товары из списка покупок обратно в список товаров.

3. Мы создаем главное окно с помощью `tk.Tk()`.

4. Создаем два виджета списка - `listbox_products` для списка товаров и `listbox_shopping_list` для списка покупок. Мы также устанавливаем режим множественного выбора `selectmode=tk.MULTIPLE` для обоих списков.

5. Добавляем заданные программно товары в список товаров с помощью метода `insert(tk.END, product)`.

6. Создаем две кнопки - `button_to_shopping_list` для перемещения товаров в список покупок и `button_to_product_list` для перемещения товаров из списка покупок обратно в список товаров. Мы также связываем каждую кнопку с соответствующей функцией с помощью параметра `command`.

7. Размещаем виджеты на окне с помощью метода `pack(side=tk.LEFT)`.

8. Запускаем главный цикл окна с помощью метода `window.mainloop()`, который позволяет окну отобразиться и обрабатывать события.

Это полное решение задачи. Если у вас возникнут дополнительные вопросы, пожалуйста, дайте мне знать!
Знаешь ответ?
Задать вопрос
Привет!
hello