Форум сайта python.su
Доброго времени суток. Сыну зали задание в 9 классе, смог в Гугле почти все найти кроме последнег пункта. Задание складывалось в том чтоб было 2 списка. 1 список с товаром в наличии, а второй тот который купили. Должна быть возможность премешениетоваров как с 1 на 2 список так и наоборот. В случае покупки товара количество в 2иске 2 должно обобразаться цифрой. Я сделал все и даже отображение цифры. Проблемма в том что она постоянно 0, а надо чтоб менялась на колличствотовара.
текст программы…..
[code python]from tkinter import *
root = Tk()
root.title('Покупки')
root.geometry('400x200+500+300')
def toSecond():
selectToSecond = lbox1.curselection()
for i in selectToSecond:
lbox2.insert(END, lbox1.get(i))
for i in reversed(selectToSecond):
lbox1.delete(i)
def toFirst():
selectToFirst = lbox2.curselection()
for i in selectToFirst:
lbox1.insert(END, lbox2.get(i))
for i in reversed(selectToFirst):
lbox2.delete(i)
lbox1 = Listbox(selectmode=EXTENDED)
for i in ["яблоко", "банан", "морковь", "хлеб", "молоко", "кофе", "ЧАЙ", "сахар", "чипсы", "конфеты"]:
lbox1.insert(0,i)
lbox1.pack(side=LEFT,anchor="c", padx=5, pady=5)
lbox2 = Listbox(selectmode=EXTENDED)
lbox2.pack(side=RIGHT,anchor="c", padx=5, pady=5)
f = Frame()
f.pack(side=LEFT, padx=10)
Button(f, text=">>>", command=toSecond, width=40).pack(fill=X)
Button(f, text="<<<", command=toFirst, width=40).pack(fill=X)
lab1 = Label(root, text = 'количество покупок:')
lab1.place(x = 150, y = 130)
lab2 = Label(root, text = lbox2.size())
lab2.place(x = 190, y = 150)
k = lbox2.size()
lab2.config(text = str(k))
root.mainloop()[/code]
Отредактировано qiper08 (Дек. 17, 2022 13:28:29)
Офлайн
Отступы где?
[code python]
Тут пиши код.
[/code]
Офлайн
вам код бот писал?
Офлайн
AD0DE412Код писал я сам, просто я в принцыпе далек от программирования.
вам код бот писал?
[code python]from tkinter import * root = Tk() root.title('Покупки') root.geometry('400x200+500+300') def toSecond(): selectToSecond = lbox1.curselection() for i in selectToSecond: lbox2.insert(END, lbox1.get(i)) for i in reversed(selectToSecond): lbox1.delete(i) def toFirst(): selectToFirst = lbox2.curselection() for i in selectToFirst: lbox1.insert(END, lbox2.get(i)) for i in reversed(selectToFirst): lbox2.delete(i) lbox1 = Listbox(selectmode=EXTENDED) for i in ["яблоко", "банан", "морковь", "хлеб", "молоко", "кофе", "ЧАЙ", "сахар", "чипсы", "конфеты"]: lbox1.insert(0,i) lbox1.pack(side=LEFT,anchor="c", padx=5, pady=5) lbox2 = Listbox(selectmode=EXTENDED) lbox2.pack(side=RIGHT,anchor="c", padx=5, pady=5) f = Frame() f.pack(side=LEFT, padx=10) Button(f, text=">>>", command=toSecond, width=40).pack(fill=X) Button(f, text="<<<", command=toFirst, width=40).pack(fill=X) lab1 = Label(root, text = 'количество покупок:') lab1.place(x = 150, y = 130) lab2 = Label(root, text = lbox2.size()) lab2.place(x = 190, y = 150) k = lbox2.size() lab2.config(text = str(k)) root.mainloop()[/code]
Отредактировано qiper08 (Дек. 17, 2022 13:27:29)
Офлайн
фотка как должно выглядеть
Прикреплённый файлы:
111.jpg (236,1 KБ)
Офлайн
Поправил код, чтобы число выводилось.
#!/usr/bin/env python3 from tkinter import * root = Tk() root.title('Покупки') root.geometry('400x200+500+300') def toSecond(): selectToSecond = lbox1.curselection() for i in selectToSecond: lbox2.insert(END, lbox1.get(i)) for i in reversed(selectToSecond): lbox1.delete(i) lab2.config(text=str(lbox2.size())) def toFirst(): selectToFirst = lbox2.curselection() for i in selectToFirst: lbox1.insert(END, lbox2.get(i)) for i in reversed(selectToFirst): lbox2.delete(i) lab2.config(text=str(lbox2.size())) lbox1 = Listbox(selectmode=EXTENDED) for i in ["яблоко", "банан", "морковь", "хлеб", "молоко", "кофе", "ЧАЙ", "сахар", "чипсы", "конфеты"]: lbox1.insert(0,i) lbox1.pack(side=LEFT,anchor="c", padx=5, pady=5) lbox2 = Listbox(selectmode=EXTENDED) lbox2.pack(side=RIGHT,anchor="c", padx=5, pady=5) f = Frame() f.pack(side=LEFT, padx=10) Button(f, text=">>>", command=toSecond, width=40).pack(fill=X) Button(f, text="<<<", command=toFirst, width=40).pack(fill=X) lab1 = Label(root, text = 'количество покупок:') lab1.place(x = 150, y = 130) lab2 = Label(root, text = lbox2.size()) lab2.place(x = 190, y = 150) k = lbox2.size() lab2.config(text = str(k)) root.mainloop()
Офлайн
py.user.nextСпасибо огромное. Всего одна строка и все работает. Низкий земной поклон.
Поправил код, чтобы число выводилось.
Офлайн