Wiązanie klawiatury Wxpython
Pracuję więc nad trenerem rytmicznym i używam wxpython jako zestawu narzędzi UI. Zastanawiałem się, czy ktoś nie wie, jak wiązać naciśnięcia klawiszy, aby odtwarzać dźwięki? Mówiąc prościej, użytkownicy mogą używać klawiatury do grania w bęben. Przykład „Naciśnięcie klawisza A spowoduje odtworzenie bębna basowego”
Teraz natrafiłem na samouczek -
http://www.blog.pythonlibrary.org/2009/08/29/wxpython-catching-key-and-char-events/
Ale wydaje się, że potrzebuje przycisku, aby pomyślnie odtworzyć dźwięk. Mam trochę funkcjonalności przy użyciu tego przykładu. Ale zastanawiałem się, czy jest inny sposób, aby to zrobić bez potrzeby używania przycisku?
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()
To jest mój przykład przy użyciu samouczka.
Twoje zdrowie!