我有一个菜单级联,它有一个用于打开/关闭背景音乐的检查按钮到应用程序(使用python tkinter)。
当应用程序运行时(通过root.mainloop()),背景音乐已经在播放,并且检查按钮旁边有一个勾号,就像我想要的那样(表示它已打开)。
当我关闭检查按钮时,声音因self.sound_off命令而关闭。
问题是当我再次单击该按钮(并且出现勾号)时,声音无法打开。我意识到这是因为我在checkbutton中指定的命令是command = sound.off()。但是我不知道如何制作它以便当嘀嗒声出现时声音播放(或取消暂停),当嘀嗒声不存在时声音会暂停。
# within def __init__(self, master) of the app
self.add_sound()
self._value = IntVar(value=1)
menubar = tk.Menu(master)
master.config(menu=menubar)
filemenu = tk.Menu(menubar)
filemenu.add_checkbutton(label="Music", onvalue=1, offvalue=0, variable=
self._value, command=self.sound_off)
def add_soud(self):
pygame.mixer.music.load("Sound.mp3")
pygame.mixer.music.set_volume(0.2)
pygame.mixer.music.play(-1)
def sound_off(self):
pygame.mixer.music.pause()
def sound_on(self):
pygame.mixer.music.unpause()
#Am I supposed to have some sort of 'if' statement to check if the onvalue is
#0 or 1?
感谢任何帮助。
答案 0 :(得分:0)
这样可行
filemenu.add_checkbutton(label="Music", onvalue=1, offvalue=0, variable=
self.sound_value, command=self.sound_manipulation)
和
def sound_manipulation(self):
if self.sound_value.get() == 1:
pygame.mixer.music.unpause()
else:
pygame.mixer.music.pause()