помогите решить задачу по python, tkinter

введите сюда описание изображения

не могу решить эту задачу не знаю даже как связать checkbutton чтоб он выводил именно на текст


Ответы (1 шт):

Автор решения: Assur

Предлагаю рабочий вариант решения. Сам дизайн требует доработки, но код вполне выполняет функции поставленной задачи.

from tkinter import *

root = Tk()
root.title("С у м м а")
root.geometry('300x250')

c = []
act = []
val = []
ova = []

txt = ["25","27","3","12","6","15","9","30","21","19"]
sum = 0

for i in range(0,10):
    act.append(BooleanVar())
    val.append(1)
    ova.append(0)

f_left = Frame(root,height = 250, width = 5 ,bg='green')
f_left.pack(side=LEFT,padx=8)

f_right = Frame(root,height = 250, width =5 ,bg='blue')
f_right.pack(side=RIGHT,padx=15)

lbox = Listbox(f_right, width = 10, height = 10)
lbox.pack()

for i in range(0,10):
    print(str(i)+" : ",act[i].get())

def activateCheck():
    for i in range(0,10):
        if act[i].get() == 0:
            val[i] = 1
        elif act[i].get() == 1:
            val[i] = 0
        print(str(i)+" : ",act[i].get()) # отладочная информация - на консоль
    out_summa()

def out_summa():
    sum = 0
    lbx = []
    lbox.delete(0,lbox.size()-1)
    for i in range(0,10):
        if val[i] == 0:
            sum = sum + int(txt[i])
            lbx.append(txt[i])
    for j in range(0,len(lbx)):
        lbox.insert(j,lbx[j])
    if sum != 0:
        txt_summa = "Сумма: "+str(sum)+"                                    "
    else:
        txt_summa = "Нет отмеченных элементов"
    print(val,ova)
    label1 = Label(text= txt_summa)
    label1.place(relx=0.25, rely=.87)

for i in range(0,10):
    c.append(Checkbutton(text=txt[i], variable=act[i], onvalue=val[i],offvalue=ova[i], command=activateCheck))
    c[i].pack(anchor=W)

root.mainloop()
→ Ссылка