两个检查按钮切换声音不正常

时间:2015-06-09 09:39:35

标签: python-2.7 button tkinter

    self.mb = Menubutton ( self.window2, text="Sound Toggler", relief=RAISED )
    self.mb.grid(row=4, column = 0)
    self.mb.menu  =  Menu ( self.mb, tearoff = 0 )
    self.mb["menu"]  =  self.mb.menu

    self.ONSound  = IntVar()
    self.ONSound.set(1)
    self.OFFSound = IntVar()
    self.OFFSound.set(0)

    self.mb.menu.add_checkbutton ( label="ONSound", variable=self.ONSound, command = self.turnON(), onvalue=1,offvalue=0)
    self.mb.menu.add_checkbutton ( label="OFFSound", variable=self.OFFSound, command = self.turnOFF(), onvalue=1,offvalue=0)

def turnON(self):
    self.ONSound.set(1)
    self.OFFSound.set(0)

def turnOFF(self):
    self.ONSound.set(0)
    self.OFFSound.set(1)

我的目标是将这两个检查按钮切换为开启和关闭声音,这样一次只能打开/关闭其中一个检查按钮。目前这种效果不起作用,我一直在查看我的代码一小时,但无法找到问题。当我的完整程序运行时,一切都显示出来但是这个ON / OFF切换并不是我想要的。

感谢所有帮助, 感谢

1 个答案:

答案 0 :(得分:2)

问题是您将command设置为函数调用而不是函数引用。这使得函数运行一次并将返回值(None)分配给command。您应该删除函数名后的括号。

要制作两个选项,其中只能选择一个,为什么不制作radiobuttons?然后它就像

一样简单
self.Sound  = IntVar()

self.mb.menu.add_radiobutton(label= "ONSound", variable=self.Sound, value=1)
self.mb.menu.add_radiobutton(label="OFFSound", variable=self.Sound, value=0)