检测是否有按键被按下,wxPython

0 投票
3 回答
517 浏览
提问于 2025-04-15 16:19

我有一个定时器,我想知道在每个循环中有没有按下任何键。请问我该怎么做呢?

3 个回答

0

试试这个:

import sys
c = sys.stdin.read(1)
1

如果你在用Linux系统,这个功能在curses模块里;如果你在用Windows系统,那它就在msvcrt模块里。我发现下面这篇文章对这个话题讲得很清楚,值得一看 - 事件驱动编程

0

如果你在用Windows系统,想要了解全局的按键事件,可以使用PyHook这个工具。

import pythoncom, pyHook 

def OnKeyboardEvent(event):
    print 'Ascii:', event.Ascii, chr(event.Ascii)
    print 'Key:', event.Key
    print 'KeyID:', event.KeyID
    print 'ScanCode:', event.ScanCode
    print 'Extended:', event.Extended

    return True #for pass through key events, False to eat Keys

hm = pyHook.HookManager()
hm.KeyDown = OnKeyboardEvent
hm.HookKeyboard()
pythoncom.PumpMessages()

撰写回答