Python 键盘库无法区分"向下"和"向右+向下"



这是我的代码:

import keyboard as kb
def key_selected():
if kb.is_pressed('shift+s+down'):
return 'True1' 

elif kb.is_pressed('shift+s+right+down'):
return 'True2'

else:
return 'NOTHING' 
while True:
x = key_selected()
print(x)

即使我按下"ift+s+right+down">,它也会返回True1。如何解决此问题?

elif的问题是,只有当以前的条件是False时,才会测试该条件。因此,当您按下shift + s + down + right时,if kb.is_pressed('shift+s+down')会被触发,因为您已经按下了shiftsdown,而elif会被忽略。

如果您颠倒顺序,以便首先检查更具体的条件,它应该可以正常工作。

def key_selected():
if kb.is_pressed('shift+s+right+down'):
return 'True2' 

elif kb.is_pressed('shift+s+down'):
return 'True1'

else:
return 'NOTHING'

做你期望的事。

最新更新