我在python中遇到了tkinter复选框的问题。
我在网格布局中使用了两个checkButtons。
class GUI (Tk):
...
def __init__(self, parent):
Tk.__init__(self, parent)
self.parent = parent
self.varA = 0
self.varB = 0
Checkbutton(self, text="Do A", variable=self.varA, command=self.onCheckButtonAPressed).grid(column=1, row=7, sticky='WESN')
Checkbutton(self, text="Do B", variable=self.varB, command=self.onCheckButtonBPressed).grid(column=2, row=4, sticky='WESN')
...
当我点击其中一个时,变量被正确更改,但只需点击其中一个变量,两个都被选中/取消选中,我不知道为什么...... :(
答案 0 :(得分:0)
为tkinter的特殊var对象重新保留variable
选项。
此外,您应该拆分对象的初始化并将其添加到Layoutmanager(.grid()
),以便稍后引用您的对象。
class GUI (Tk):
def __init__(self, **options):
Tk.__init__(self, **options)
self.varA = IntVar()
self.varA.set(0)
self.varB = IntVar()
self.varB.set(0)
checkbox_a = Checkbutton(self, text="Do A", variable=self.varA, command=self.onCheckButtonAPressed)
checkbox_a.grid(column=1, row=7, sticky='WESN')
checkbox_b = Checkbutton(self, text="Do B", variable=self.varB, command=self.onCheckButtonBPressed)
checkbox_b.grid(column=2, row=4, sticky='WESN')
def onCheckButtonBPressed(self):
print self.varB.get()
def onCheckButtonAPressed(self):
print self.varA.get()