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切换并不是我想要的。
感谢所有帮助, 感谢
答案 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)