如果 python 中的复选框是使用循环制作的,我如何对它们的值求和?
How can i sum the values of checkboxes in python if they were made using a loop?
最近我编写了一个代码,它根据我放入列表 list.Items 中的项目添加复选框,该列表由连接到整数的字符串组成,因此带有复选框的 window 看起来像这样: London(3.40) New York(2.20) California(1.2) etc.What 我现在想做的是制作一个按钮,单击该按钮时会对复选框中的整数求和。
注意:我有两个列表,一个列表是整数列表 Example = [1.2,3.4,2.45,2.4]
,另一个列表是项目列表 Items = ["London","New York","California","Toronto"]
,在它们与另一个列表中的循环连接后,该列表由 Items(Value) i制作了一个循环,根据该连接列表中的项目数量生成复选按钮。
我不知道如何在循环中实现 get() 函数,以便当我单击几个复选框时它会对它们求和并通过按钮 Sum 打印它们。
可以通过哪些方式实现?
代码示例:
Values = [1.2,3.4,5.4]
Items = ["London","Lisbon","Athens"]
Connect = ['%.2f', % i for i in Values]
while i != len(Connect):
Items[i] = Items[i]+"(" + Connect[i] + ")"
i = i+ 1
for j in range(len(Values)):
items = tkinter.Checkbutton(window, text=Items[j], onvalue=1, offvalue=0)
从现在开始,我需要制作一个函数来对选中的复选框求和,并在单击“求和”按钮后打印求和。
感谢您对转发的帮助!
只需将复选按钮或关联变量存储在一个循环中。然后您可以遍历循环以获取值。
由于您想要创建代表非 1 或 0 数字的复选按钮,我建议您将复选按钮的值设置为实际值而不是 1。
例如,您可以像这样创建复选按钮:
vars = []
for label, value in zip(Items, Values):
var = tk.DoubleVar(value=0)
vars.append(var)
cb = tk.Checkbutton(root, text=label, onvalue=value, offvalue=0, variable=var)
cb.pack(side="top", anchor="w")
有了vars
中的变量,我们可以通过获取每个变量的值,然后将它们相加来求和:
def do_sum():
values = [var.get() for var in vars]
result = sum(values)
print("sum:", result)
最近我编写了一个代码,它根据我放入列表 list.Items 中的项目添加复选框,该列表由连接到整数的字符串组成,因此带有复选框的 window 看起来像这样: London(3.40) New York(2.20) California(1.2) etc.What 我现在想做的是制作一个按钮,单击该按钮时会对复选框中的整数求和。
注意:我有两个列表,一个列表是整数列表 Example = [1.2,3.4,2.45,2.4]
,另一个列表是项目列表 Items = ["London","New York","California","Toronto"]
,在它们与另一个列表中的循环连接后,该列表由 Items(Value) i制作了一个循环,根据该连接列表中的项目数量生成复选按钮。
我不知道如何在循环中实现 get() 函数,以便当我单击几个复选框时它会对它们求和并通过按钮 Sum 打印它们。 可以通过哪些方式实现?
代码示例:
Values = [1.2,3.4,5.4]
Items = ["London","Lisbon","Athens"]
Connect = ['%.2f', % i for i in Values]
while i != len(Connect):
Items[i] = Items[i]+"(" + Connect[i] + ")"
i = i+ 1
for j in range(len(Values)):
items = tkinter.Checkbutton(window, text=Items[j], onvalue=1, offvalue=0)
从现在开始,我需要制作一个函数来对选中的复选框求和,并在单击“求和”按钮后打印求和。 感谢您对转发的帮助!
只需将复选按钮或关联变量存储在一个循环中。然后您可以遍历循环以获取值。
由于您想要创建代表非 1 或 0 数字的复选按钮,我建议您将复选按钮的值设置为实际值而不是 1。
例如,您可以像这样创建复选按钮:
vars = []
for label, value in zip(Items, Values):
var = tk.DoubleVar(value=0)
vars.append(var)
cb = tk.Checkbutton(root, text=label, onvalue=value, offvalue=0, variable=var)
cb.pack(side="top", anchor="w")
有了vars
中的变量,我们可以通过获取每个变量的值,然后将它们相加来求和:
def do_sum():
values = [var.get() for var in vars]
result = sum(values)
print("sum:", result)