我有一个程序,我正在工作,希望用户选择他们的兴趣,当他们完成后,按提交。如果至少选中了一个按钮,我将如何只允许用户按提交。在
from tkinter import *
check = Tk()
check.title("Interests")
CheckVar1 = IntVar()
CheckVar2 = IntVar()
CheckVar3 = IntVar()
CheckVar4 = IntVar()
CheckVar5 = IntVar()
C1 = Checkbutton(check, text = "Horror", variable = CheckVar1, \
onvalue = 1, offvalue = 0, height=1, \
width = 20)
C2 = Checkbutton(check, text = "Action", variable = CheckVar2, \
onvalue = 1, offvalue = 0, height=1, \
width = 20)
C3 = Checkbutton(check, text = "Documentary", variable = CheckVar3, \
onvalue = 1, offvalue = 0, height=1, \
width = 20)
C4 = Checkbutton(check, text = "Science fiction", variable = CheckVar4, \
onvalue = 1, offvalue = 0, height=1, \
width = 20)
C5 = Checkbutton(check, text = "Comedy", variable = CheckVar5, \
onvalue = 1, offvalue = 0, height=1, \
width = 20)
submit_btn = Button(check, text = "Submit", command = lambda: check.destroy())
C1.pack()
C2.pack()
C3.pack()
C4.pack()
C5.pack()
submit_btn.pack()
check.mainloop()
if CheckVar1.get():
#dosomething
if CheckVar2.get():
#dosomething
if CheckVar3.get():
#dosomething
if CheckVar4.get():
#dosomething
if CheckVar5.get():
#dosomething
为了更容易处理,您可以创建一个兴趣列表,然后使用它们来循环所有内容。这也将使将来添加内容更容易,例如:
在销毁窗口之前,您需要添加一个处理函数来检查是否至少选中了一个框。在
您可以通过以下逻辑轻松实现:
注意,您应该使用
BooleanVar
而不是IntVar
作为开-关复选框。另外,考虑窗口关闭时的adding a check。在相关问题 更多 >
编程相关推荐