【发布时间】:2018-10-24 12:51:09
【问题描述】:
我想制作一个程序,当您单击键盘上的按钮时运行代码,例如,我按 A 并运行一些代码,但我不必按 enter 或输入它来运行它。就像在电子游戏中一样,如果你按下 W,你的角色就会移动。对不起,如果措辞不好,我对此感到很困惑。
请记住,它是 Python 2.7
【问题讨论】:
-
你有没有尝试过?
-
Keypress detection的可能重复
我想制作一个程序,当您单击键盘上的按钮时运行代码,例如,我按 A 并运行一些代码,但我不必按 enter 或输入它来运行它。就像在电子游戏中一样,如果你按下 W,你的角色就会移动。对不起,如果措辞不好,我对此感到很困惑。
请记住,它是 Python 2.7
【问题讨论】:
我假设您的意思是在控制台中,而不是在 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 循环。
【讨论】: