使用键盘模块时检测按键释放
Detect key release while using keyboard module
警告:我的英语很烂而且我对 python
真的很陌生
所以我正在制作一个需要特定按键(例如 space 栏)才能继续循环的程序,例如:
for i in *some sort of list*:
print(something)
*waits for a key*
我最后一行的方法是键盘模块(不是来自 pynput),它有函数is_pressed
。当我按下一个键时,我得到了输出:
*something*
*something*
*something*
*repeats for several times*
我知道函数检测的是按键而不是按下和释放,所以我一松开输出就停止了。但这不是我的程序的工作方式。每次我释放该键时它都应该响应。不幸的是,我找不到一个名为 is_released
的函数,模块 pynput
无法获取我使用 Listener
按下的键。至少我不能。
此外,有没有办法让 keyboard
和 pynput
都可以导入计算机?安装 pynput
后,我的 VS Code 会忽略 keyboard
。
编辑:这是我对问题的解决方案,但它超级愚蠢:
while True:
if keyboard.is_pressed('space'):
while True:
if not keyboard.is_pressed('space'):
break
break
有没有做同样事情的函数?
因为它只检测按键,所以使用标志。我认为这样的事情可以做到:
1.制作一个布尔变量来检测单个按键
2. 如果按键被按下,bool 将被设置为 true
3. 如果 bool 为真而不是 key.is_pressed:做你的事
4.运行后设置bool为false
例如,在代码中,将是这样的:
keypress = False
key = 'space'
while True:
if keypress and not keyboard.is_pressed(key):
'''DO YOUR THING'''
#beak out of while loop?
keypress = False
break
elif keyboard.is_pressed(key) and not keypress:
keypress = True
不知道您是否会这样做,但我想您可以理解我的意思。祝你好运!
警告:我的英语很烂而且我对 python
真的很陌生
所以我正在制作一个需要特定按键(例如 space 栏)才能继续循环的程序,例如:
for i in *some sort of list*:
print(something)
*waits for a key*
我最后一行的方法是键盘模块(不是来自 pynput),它有函数is_pressed
。当我按下一个键时,我得到了输出:
*something*
*something*
*something*
*repeats for several times*
我知道函数检测的是按键而不是按下和释放,所以我一松开输出就停止了。但这不是我的程序的工作方式。每次我释放该键时它都应该响应。不幸的是,我找不到一个名为 is_released
的函数,模块 pynput
无法获取我使用 Listener
按下的键。至少我不能。
此外,有没有办法让 keyboard
和 pynput
都可以导入计算机?安装 pynput
后,我的 VS Code 会忽略 keyboard
。
编辑:这是我对问题的解决方案,但它超级愚蠢:
while True:
if keyboard.is_pressed('space'):
while True:
if not keyboard.is_pressed('space'):
break
break
有没有做同样事情的函数?
因为它只检测按键,所以使用标志。我认为这样的事情可以做到: 1.制作一个布尔变量来检测单个按键 2. 如果按键被按下,bool 将被设置为 true 3. 如果 bool 为真而不是 key.is_pressed:做你的事 4.运行后设置bool为false
例如,在代码中,将是这样的:
keypress = False
key = 'space'
while True:
if keypress and not keyboard.is_pressed(key):
'''DO YOUR THING'''
#beak out of while loop?
keypress = False
break
elif keyboard.is_pressed(key) and not keypress:
keypress = True
不知道您是否会这样做,但我想您可以理解我的意思。祝你好运!