2012-02-27 75 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

相關問題