2012-02-27 77 views
2

假如我有一个可以播放声音的按钮,我可以做到这一点吗?如果再次按下按钮,它会停止播放音乐?让按钮在第二次按下时表现不同(Python)

我使用Python v.2.7,Easy Eclipse作为IDE和wxFormBuilder作为窗口。

这里是我的代码:

import gui 
import wx 
import wx.media 
import pygame 
import tkFileDialog 

class MainFrame(gui.GUI_MainFrame): 
    def __init__(self, parent): #Definerar KunddatabasMainFrame 
     pygame.init() 
     gui.GUI_MainFrame.__init__(self, parent) #Initierar MainFrame f�nstret 
     self.sound1=pygame.mixer.Sound('beat1.wav') 
     self.sound2=pygame.mixer.Sound('beat2.wav') 
     self.recording = False 

    def evtBrowse1(self, evt): 
     tkFileDialog.askopenfilename() 

    def evtSoOne(self, evt): 
     self.sound1.play(loops=-1) 

回答

3

我会用一个全局布尔变量,并且每个按钮被按下时触发它。在按钮上调用的函数会根据这个变量的状态做不同的事情。

如果你想处理更多的情况,你当然可以把它扩展为int变量。

+0

您不需要使用全局变量 - 在这种情况下,实例变量就足够了。 – 2012-02-27 08:20:01

+0

@KarlBarker不,在这种情况下,实例变量将*错误,因为他的函数正在操纵全局状态。 – Deestan 2012-02-27 08:26:34

+0

@Deestan我承认我没有使用pygame--什么样的全局状态正在受到影响?我所看到的只是实例变量...... – 2012-02-27 08:35:13

相关问题