首页 > 解决方案 > 检测键盘按下

问题描述

我想制作一个程序,当您单击键盘上的按钮时运行代码,例如,我按 A 并运行一些代码,但我不必按 enter 或输入它来运行它。就像在电子游戏中一样,如果你按下 W,你的角色就会移动。对不起,如果措辞不好,我对此感到很困惑。

请记住,它是 Python 2.7

标签: pythoneventskeyboard

解决方案


我假设您的意思是在控制台中,而不是在 tkinter 之类的任何 gui 中。

我建议使用 pynput (pip install pynput)

使用与此类似的代码

from pynput.keyboard import Key, Listener

def on_press(key):
    print('{0} pressed'.format(
        key))

def on_release(key):
    print('{0} release'.format(
        key))
    if key == Key.esc:
        # Stop listener
        return False

while True:
    with Listener(on_press=on_press,on_release=on_release) as listener:
        listener.join()

警告词:上面的代码还捕获了退出键,因此 ctrl + c 不会停止控制台。为此,当按下 ctrl+c 时,您需要实现一些东西来打破 While 循环。


推荐阅读