确定有多少复选按钮被勾选也存储信息
determine how many checkbuttons are ticked that also store information
我正在制作包含复选框的程序的一部分。总共有 8 个复选框,用户可以设置最少和最多 3 个复选框。这样就很简单了,通过设置on-value为1来判断勾选了多少,然后把所有的checkbox的on-values总和相加,如果不等于3,就这么说。
但是,我将特定信息存储在这些复选框中,我 .get() 这些并将它们添加到列表中,然后我将其放入树视图和 mysql 数据库中。
我认为我可以解决这个问题的一种方法是将关闭值设置为 1,然后添加所有关闭值,如果总关闭值 = 5,则意味着未选中 5 个框,因此已选中 3 个.但是,我不知道如何从复选框中获取 offvalue 和 onvalue。
如有任何帮助,我们将不胜感激。
var1 = IntVar()
musiccheck = Checkbutton(frame2, text='Music', variable = var1, onvalue='3', offvalue='1')
musiccheck.pack()
var2 = IntVar()
ecocheck = Checkbutton(frame2, text='Econ', variable = var2, onvalue='5', offvalue='1')
ecocheck.pack()
这是一个有点廉价的方法,但我能够找到一种方法来首先确定是否选中了 3 个复选框,然后如果它通过了,它会继续将它们放入列表中,然后我将其放入 mysql 数据库和树视图。
代码首先检查复选框是否被选中。获取复选框,然后查看它是否等于 onvalue,或者换句话说,它是否被选中。如果是,它将附加到临时列表中。
它继续检查所有并附加所有其他复选框。现在我if len列表,如果多于或少于3个,它通知用户,如果列表中有3个值,它通过。
def check():
var_len = []
print("--")
if var1.get() == 1:
var_len.append(1)
if var2.get() == 2:
var_len.append(2)
if var3.get() == 3:
var_len.append(3)
if var4.get() == 4:
var_len.append(4)
if var5.get() == 5:
var_len.append(4)
if len(var_len) == 3:
print("good")
else:
print("choose 3 items")
print("--")
var1 = IntVar()
musiccheck = Checkbutton(frame2, text='Music', variable = var1, onvalue='1', offvalue='0')
musiccheck.pack()
var2 = IntVar()
ecocheck = Checkbutton(frame2, text='Econ', variable = var2, onvalue='2', offvalue='0')
ecocheck.pack()
var3 = IntVar()
DGTcheck = Checkbutton(frame2, text='DGT', variable = var3, onvalue='3', offvalue='0')
DGTcheck.pack()
var4 = IntVar()
chemcheck = Checkbutton(frame2, text='Chem', variable = var4, onvalue='4', offvalue='0')
chemcheck.pack()
var5 = IntVar()
phycheck = Checkbutton(frame2, text='Phys', variable = var5, onvalue='5', offvalue='0')
phycheck.pack()
我正在制作包含复选框的程序的一部分。总共有 8 个复选框,用户可以设置最少和最多 3 个复选框。这样就很简单了,通过设置on-value为1来判断勾选了多少,然后把所有的checkbox的on-values总和相加,如果不等于3,就这么说。
但是,我将特定信息存储在这些复选框中,我 .get() 这些并将它们添加到列表中,然后我将其放入树视图和 mysql 数据库中。
我认为我可以解决这个问题的一种方法是将关闭值设置为 1,然后添加所有关闭值,如果总关闭值 = 5,则意味着未选中 5 个框,因此已选中 3 个.但是,我不知道如何从复选框中获取 offvalue 和 onvalue。
如有任何帮助,我们将不胜感激。
var1 = IntVar()
musiccheck = Checkbutton(frame2, text='Music', variable = var1, onvalue='3', offvalue='1')
musiccheck.pack()
var2 = IntVar()
ecocheck = Checkbutton(frame2, text='Econ', variable = var2, onvalue='5', offvalue='1')
ecocheck.pack()
这是一个有点廉价的方法,但我能够找到一种方法来首先确定是否选中了 3 个复选框,然后如果它通过了,它会继续将它们放入列表中,然后我将其放入 mysql 数据库和树视图。
代码首先检查复选框是否被选中。获取复选框,然后查看它是否等于 onvalue,或者换句话说,它是否被选中。如果是,它将附加到临时列表中。
它继续检查所有并附加所有其他复选框。现在我if len列表,如果多于或少于3个,它通知用户,如果列表中有3个值,它通过。
def check():
var_len = []
print("--")
if var1.get() == 1:
var_len.append(1)
if var2.get() == 2:
var_len.append(2)
if var3.get() == 3:
var_len.append(3)
if var4.get() == 4:
var_len.append(4)
if var5.get() == 5:
var_len.append(4)
if len(var_len) == 3:
print("good")
else:
print("choose 3 items")
print("--")
var1 = IntVar()
musiccheck = Checkbutton(frame2, text='Music', variable = var1, onvalue='1', offvalue='0')
musiccheck.pack()
var2 = IntVar()
ecocheck = Checkbutton(frame2, text='Econ', variable = var2, onvalue='2', offvalue='0')
ecocheck.pack()
var3 = IntVar()
DGTcheck = Checkbutton(frame2, text='DGT', variable = var3, onvalue='3', offvalue='0')
DGTcheck.pack()
var4 = IntVar()
chemcheck = Checkbutton(frame2, text='Chem', variable = var4, onvalue='4', offvalue='0')
chemcheck.pack()
var5 = IntVar()
phycheck = Checkbutton(frame2, text='Phys', variable = var5, onvalue='5', offvalue='0')
phycheck.pack()