如何创建重置按钮取消所有单选框与复选框选中状态?解决属性错误
解决Tkinter重置单选/复选按钮时的AttributeError问题
你遇到的AttributeError: 'IntVar' object has no attribute 'delete'是因为**var、cv1到cv7都是Tkinter的IntVar变量对象,不是输入框控件**,这类变量没有delete()方法——delete(0, END)只适用于Entry这类可编辑输入控件,用来清空内容。
要重置单选按钮和复选按钮的选中状态,正确的做法是直接修改它们绑定的变量值:
- 单选按钮(RadioButton):绑定的
IntVar只需设置为一个不在选项value范围内的数值(比如-1),就能取消选中 - 复选按钮(Checkbutton):每个绑定的
IntVar设置为0(Tkinter默认用1表示选中,0表示未选中)
修改后的重置函数代码如下:
def resetbtn(): # 重置单选按钮为未选中状态 var.set(-1) # 逐个重置复选按钮为未选中 cv1.set(0) cv2.set(0) cv3.set(0) cv4.set(0) cv5.set(0) cv6.set(0) cv7.set(0) # 清空输入框的代码是正确的,保留即可 entry1.delete(0, END) btn2= Button(root, text= 'Reset', command= resetbtn) btn2.grid(row= 10, column=2) mainloop()
补充说明:如果你的单选按钮选项用的是字符串类型的value,那对应的变量应该是StringVar,重置时设置为空字符串var.set("")即可,要保证变量类型和选项值类型匹配。
内容的提问来源于stack exchange,提问作者Lufaya Oke
相关产品推荐
相关产品推荐

