当我运行我的python应用程序时,按键不会产生声音,但是一旦你退出tkinter gui,它就会起作用并播放声音。我试图重新定位代码,但GUI根本没有出现。
from Tkinter import *
import winsound
import pythoncom
import pyHook
root = Tk()
root.geometry("500x500")
root.title("Piano Keys")
photo = PhotoImage(file="food.gif")
picture = Label(root, image=photo)
picture.pack()
start = Button(root, text='Start Piano Keys')
close = Button(root, text='Exit Piano Keys', command=lambda:root.destroy())
close.pack()
root.mainloop()
def OnKeyboardEvent(event):
key = event.Key
if key == 'A':
winsound.Beep(261, 200)
if key == 'S':
winsound.Beep(277, 200)
if key == 'D':
winsound.Beep(293, 200)
if key == 'F':
winsound.Beep(311, 200)
if key == 'G':
winsound.Beep(329, 200)
if key == 'H':
winsound.Beep(349, 200)
if key == 'J':
winsound.Beep(370, 200)
if key == 'K':
winsound.Beep(392, 200)
if key == 'L':
winsound.Beep(415, 200)
return True
hm = pyHook.HookManager()
hm.KeyDown = OnKeyboardEvent
hm.HookKeyboard()
pythoncom.PumpMessages()
答案 0 :(得分:1)
你试图重新定位它是怎么回事? mainloop
启动GUI,它应该被称为last,iirc。除了PumpMessages
会阻止该主题,我认为...... Mhm,here是一个相关的问题。所以这是因为主线程被mainloop
阻止,因此pyhook无法做到(但是)。