基于Tkinter使用bind方法更新字典值及复选框联动输入框问题求解
解决方案
你需要修改DictionaryEntry类的naccheck方法,即可实现「复选框取消激活时自动将entry_c2的值设置为与entry_c1一致」的需求,修改逻辑如下:
- 当检测到复选框未勾选(
self.nac.get() == 0)时,先读取entry_c1的当前值 - 将读取到的值赋值给
entry_c2绑定的StringVar变量,同步更新输入框显示 - 同步修改存储的
values数组对应位置的值,保证后续字典取值正确
修改后的完整方法代码:
def naccheck(self): if self.nac.get() == 0: # 同步entry_c2值为entry_c1当前值 current_c1_val = self.entry_c1.get() self.variable[1].set(current_c1_val) self.values[-1] = current_c1_val self.entry_c2.configure(state='disabled') else: self.entry_c2.configure(state='normal')
修改完成后运行程序即可验证效果:勾选复选框可独立修改两个输入框的值,取消勾选后第二个输入框会自动变为和第一个输入框相同的值,同时变为不可编辑状态,点击「click me」按钮打印字典可以看到对应值已经同步更新。
内容的提问来源于stack exchange,提问作者drSlump
相关产品推荐
相关产品推荐

