让按钮在第二次按下时表现不同(Python)
问题描述:
假如我有一个可以播放声音的按钮,我可以做到这一点吗?如果再次按下按钮,它会停止播放音乐?让按钮在第二次按下时表现不同(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)
答
我会用一个全局布尔变量,并且每个按钮被按下时触发它。在按钮上调用的函数会根据这个变量的状态做不同的事情。
如果你想处理更多的情况,你当然可以把它扩展为int
变量。
您不需要使用全局变量 - 在这种情况下,实例变量就足够了。 – 2012-02-27 08:20:01
@KarlBarker不,在这种情况下,实例变量将*错误,因为他的函数正在操纵全局状态。 – Deestan 2012-02-27 08:26:34
@Deestan我承认我没有使用pygame--什么样的全局状态正在受到影响?我所看到的只是实例变量...... – 2012-02-27 08:35:13