我的tkinter窗口中有一个检查按钮,否则工作正常,但无论我做什么,它都会以灰色显示并检查。我必须单击它一次以删除灰色,然后再次取消选中它。我不知道它为什么要这样做,除了它只在使用StringVar时发生,而不是像IntVar那样。我只是希望它像任何其他常规复选框一样开始取消选中。这是我的代码:
self.symptom1Var = StringVar()
self.symptomCheck1 = Checkbutton(self, text="Symptom", variable = self.symptom1Var)
self.symptomCheck1.grid(row=2, column=0)
答案 0 :(得分:0)
唯一的问题是你没有给checkbutton一个默认值,所以它从一个不确定的状态开始。
StringVar
的初始值为空字符串,复选按钮的默认“on”值为1
,复选按钮的默认“off”值为0
。由于您尚未将其设置为1
或0
,因此它处于不确定状态(既未选中也未取消选中)。
解决方案是通过设置关联变量来确保将其设置为已检查或未检查状态:
self.symptom1Var.set(1)