如何在Tkinter类中为单选按钮设置默认选中值
问题根源
你的代码逻辑本身没有问题,默认值不生效是Tkinter变量被垃圾回收导致的:你实例化RadioButtons类后没有将实例赋值给变量保存,类实例会在初始化完成后被Python自动回收,实例下绑定的self.jobNum这个IntVar对象也会随之销毁,单选按钮和变量的绑定关系失效,自然无法显示默认选中状态。
修复方案
只需要修改主程序部分的代码,保存RadioButtons类的实例引用即可:
root = Tk() # 给实例赋值一个变量,避免被垃圾回收 app = RadioButtons(root) root.mainloop()
修改后运行程序,就能看到Button 1默认处于选中状态,完全符合你的预期。
补充说明
你调试时看到self.jobNum赋值正确,是因为调试阶段类实例还没有被回收,初始化流程走完后没有引用的实例才会被销毁,所以才会出现调试值正确、实际运行无效果的反差,这不是作用域问题。
内容的提问来源于stack exchange,提问作者just_Mango
相关产品推荐
相关产品推荐

