Название
Другие предметы

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

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

    Разъяснение: Для решения этой задачи, мы можем использовать библиотеку Tkinter в Python, которая предоставляет нам инструменты для создания графического интерфейса пользователя. Мы будем создавать два элемента Listbox: один для списка товаров и другой для списка покупок.
    Мы также будем использовать кнопки, чтобы перемещать товары между этими двумя списками. При нажатии на кнопку "Добавить" выбранный товар будет перемещаться из списка товаров в список покупок, а при нажатии кнопки "Удалить" товар будет перемещаться обратно в список товаров, если пользователь передумал его покупать. Чтобы предусмотреть возможность выбора нескольких элементов списка, мы будем использовать свойство `selectmode` в Listbox и метод `curselection()` для получения выбранных позиций элементов.
    Вот пример программы на языке Python, решающей данную задачу:

    python
    import tkinter as tk

    def move_to_cart():
    selected_items = list(lb_goods.curselection()) # получаем список выбранных товаров
    for item in reversed(selected_items):
    lb_cart.insert(0, lb_goods.get(item)) # перемещаем выбранный товар в список покупок
    lb_goods.delete(item) # удаляем товар из списка товаров

    def move_to_goods():
    selected_items = list(lb_cart.curselection()) # получаем список выбранных товаров
    for item in reversed(selected_items):
    lb_goods.insert(0, lb_cart.get(item)) # перемещаем выбранный товар обратно в список товаров
    lb_cart.delete(item) # удаляем товар из списка покупок

    window = tk.Tk()

    lb_goods = tk.Listbox(window, selectmode=tk.MULTIPLE) # список товаров
    lb_goods.pack(side=tk.LEFT)

    lb_cart = tk.Listbox(window, selectmode=tk.MULTIPLE) # список покупок
    lb_cart.pack(side=tk.LEFT)

    btn_add = tk.Button(window, text="Добавить", command=move_to_cart) # кнопка "Добавить"
    btn_add.pack(side=tk.LEFT)

    btn_remove = tk.Button(window, text="Удалить", command=move_to_goods) # кнопка "Удалить"
    btn_remove.pack(side=tk.LEFT)

    window.mainloop()


    Совет: Если вы испытываете трудности с пониманием данного решения, рекомендуется ознакомиться с документацией библиотеки Tkinter в Python для лучшего понимания работы с элементами Listbox и кнопками.

    Закрепляющее упражнение: Напишите программу, которая содержит список товаров `["Яблоко", "Молоко", "Хлеб", "Сыр"]` и пустой список покупок. При нажатии на кнопку "Добавить", выбранные товары должны переместиться из списка товаров в список покупок. При нажатии на кнопку "Удалить", выбранные товары должны переместиться обратно в список товаров.
Написать свой ответ: