所以我正在开发节奏训练器,并使用wxpython作为UI工具箱。我想知道有没有人知道如何绑定键盘来播放声音?所以简单地说,用户可以使用键盘来演奏鼓点。示例“按A键将播放低音鼓”
现在我遇到了一个教程-
http://www.blog.pythonlibrary.org/2009/08/29/wxpython-catching-key-and-char-events/
但这似乎需要按键才能成功播放声音。通过这个例子,我得到了一些有用的功能。但我想知道有没有其他方法不需要按钮就可以做到?在
import wx
class MyForm(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, wx.ID_ANY, "Key Press Tutorial")
# Add a panel so it looks the correct on all platforms
panel = wx.Panel(self, wx.ID_ANY)
btn = wx.Button(panel, label="OK")
btn.Bind(wx.EVT_KEY_DOWN, self.onKeyPress)
def onKeyPress(self, event):
keycode = event.GetKeyCode()
print keycode
if keycode == ord('A'):
print "you pressed the spacebar!"
sound_file = "notation1.wav"
sound=wx.Sound(sound_file)
print(sound_file)
sound.Play(wx.SOUND_ASYNC)
event.Skip()
# Run the program
if __name__ == "__main__":
app = wx.PySimpleApp()
frame = MyForm()
frame.Show()
app.MainLoop()
这是我使用教程的示例。在
干杯!在
我的教程是关于捕捉焦点部件上的击键。在教程的例子中,这是一个焦点按钮,这就是为什么它被绑定到EVT_KEY_DOWN。不幸的是,面板并不是很容易接受焦点,所以最好使用SetFocus()手动设置面板上的焦点,或者将key事件绑定到大多数小部件上。在
你也许可以使用加速器,但我不确定这是否适用于你的情况。以下是关于该主题的教程的链接:
http://www.blog.pythonlibrary.org/2010/12/02/wxpython-keyboard-shortcuts-accelerators/
相关问题 更多 >
编程相关推荐