python如何对treeview列中的所有数字求和
我需要对Treeview的“总和”列中的所有数字求和: 代码是:python如何对treeview列中的所有数字求和,python,python-3.x,tkinter,Python,Python 3.x,Tkinter,我需要对Treeview的“总和”列中的所有数字求和: 代码是: from tkinter import ttk import tkinter as tk from tkinter import* def update(): listBox.insert('','end',value=('APL', t1.get(),t2.get(),t3.get())) root = tk.Tk() root.geometry('1000x600') e8 = tk.Label(root,te
from tkinter import ttk
import tkinter as tk
from tkinter import*
def update():
listBox.insert('','end',value=('APL', t1.get(),t2.get(),t3.get()))
root = tk.Tk()
root.geometry('1000x600')
e8 = tk.Label(root,text="APL").grid(row=1,column=0)
t1 = tk.Entry(root)
t1.grid(row=1,column=1)
t2 = tk.Entry(root)
t2.grid(row=1,column=2)
t3 = tk.Entry(root)
t3.grid(row=1,column=3)
cols = ('name', 'No1', 'No2', 'total sum')
listBox = ttk.Treeview(root, columns=cols, show='headings')
for col in cols:
listBox.heading(col, text=col)
listBox.grid(row=1, column=0, columnspan=2)
listBox.place(x=10, y=300)
b = tk.Button(root,text='Update Listbox',command=update)
b.grid(row=3)
root.mainloop()
这里有一个方法来做你想做的事 通过制作按钮和功能开始:
b1 = tk.Button(root,text='Add Listbox',command=add)
b1.grid(row=4)
然后,add()
可以是:
def add():
total = 0.0
for child in listBox.get_children():
total += float(listBox.item(child, 'values')[3])
lbl = Label(root,text=total,font=('helvetica',18))
lbl.grid(row=5)
这将在最后一列中打印项目总数
提示:
您可以将“总和”输入框自动插入到第三个输入框中
def added():
# Sets the sum of values of e1 and e2 as val of e3
try :
sum_tk.set((int(t1.get().replace(' ', '')) + int(t2.get().replace(' ', ''))))
except :
pass
root.after(1, added) # reschedule the event
return
然后您应该定义类似的内容,并将代码更改为下面的内容
sum_tk = tk.StringVar()
t3 = tk.Entry(root,textvariable=sum_tk)
t3.grid(row=1,column=3)
在代码的末尾,添加
root.after(1,added)
这将在代码开始时调用函数
如果不需要按钮,请删除按钮及其功能,只需更改update()
,如下所示
def update():
if t1.get() == '' or t2.get() == '' or t3.get() == '':
pass
else:
listBox.insert('','end',value=('APL', t1.get(),t2.get(),t3.get()))
total = 0.0
try:
for child in listBox.get_children():
total += float(listBox.item(child, 'values')[3])
except:
pass
print(total)
lbl = Label(root,text=total,font=('helvetica',21))
lbl.grid(row=5)
t1.delete(0,'end')
t2.delete(0,'end')
t3.delete(0,'end')
希望这对我有所帮助,如果有任何疑问或错误,一定要让我知道
干杯你的图像中的no1和no2的总和应该是10+10,那100是怎么回事?你是指产品吗?为什么要在
t3
上插入一个数字?让系统为你做吧?我只是手工输入的。我需要100的总数。你想它是自动完成的吗?自动和按钮基我需要在tkinter吉他总数看看视频列表。这就是我学习的方式。无论如何,如果你能将此标记为正确答案,我将不胜感激。我更新了我的答案,如果你想要完整的代码,请让我知道更新的答案,再次