我希望我的(Python / Windows)GUI GTK窗口在按键时关闭。但是,没有反应。 我是初学者,我正在寻找谷歌的答案。 我的英语也不是非常专业。 请耐心等待。
import pygtk
import gtk
import pyHook
class Program:
def QuitOnKeyPress(self):
if pyHook.GetKeyState(81) == '1':
gtk.main_quit()
def __init__(self):
self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
self.window.set_position(gtk.WIN_POS_CENTER)
self.window.set_size_request(300, 300)
self.window.show()
def main(self):
gtk.main()
if __name__ == "__main__":
prog = Program()
prog.main()
while 1:
prog.QuitOnKeyPress() #Tried without () too
你能告诉我我做错了什么吗?
我也尝试使用win32api和pyGame。
但是win32api [from here]还没有安装,只有win32com。
PyGame也有问题 - 没有安装键盘事件/模块。
答案 0 :(得分:0)
查看the pyHook tutorial.您的while循环方法检查按键是否按下状态仍然无法正常工作。相反它应该是这样的:
def OnKeyboardEvent(event):
if event.KeyID == 81:
gtk.main_quit()
# return True to pass the event to other handlers
return True
# create a hook manager
hm = pyHook.HookManager()
# watch for all mouse events
hm.KeyDown = OnKeyboardEvent
# set the hook
hm.HookKeyboard()
# wait forever
pythoncom.PumpMessages()