如何取消选中ttk.Radiobutton?求有效实现方案
ttk的单选按钮没有deselect()方法,它的选中状态完全由绑定的变量(也就是你代码里的self.var)控制,不像tk原生单选按钮有独立的状态控制接口。要取消所有ttk单选按钮的高亮选中状态,只需要把绑定的变量设置为一个不在现有按钮value值范围内的数值即可。
你的两个按钮value分别是1和2,所以直接把self.var设为0,就能让两个按钮都回到未选中状态:
# 写一个取消选中的方法 def deselectRadios(self): self.var.set(0)
之后在需要取消选中的场景调用这个方法就行,比如加个触发按钮:
self.cancelBtn = ttk.Button(self, text="取消选中", command=self.deselectRadios)
核心逻辑就是:ttk单选按钮只有在绑定变量的值和自身value匹配时才会被选中,把变量设为其他值,所有按钮都会自动取消高亮状态,完全不需要依赖deselect()方法。
内容的提问来源于stack exchange,提问作者user21937868
相关产品推荐
相关产品推荐

