Python,检查是否按下了箭头键

问题描述 投票:0回答:4

如何在Python中检查用户是否按下了箭头键?我想要这样的东西:

if right_key.pressed():
    do_some_shit()
elif left_key.pressed():
    do_other_stuff()
python click user-input
4个回答
0
投票

在终端(或anacoonda提示符)中运行此命令来安装pynput

library

pip install pynput

并且,在你的编辑器中

from pynput import keyboard
from pynput.keyboard import Key

def on_key_release(key):
    if key == Key.right:
        print("Right key clicked")
    elif key == Key.left:
        print("Left key clicked")
    elif key == Key.up:
        print("Up key clicked")
    elif key == Key.down:
        print("Down key clicked")
    elif key == Key.esc:
        exit()


with keyboard.Listener(on_release=on_key_release) as listener:
    listener.join()

更多信息


0
投票

通过使用监听器,您将不必播放无限循环。我认为这更优雅。此代码将为您提供帮助:

from pynput import keyboard
    
def on_press(key):
        if key == keyboard.Key.up:
            print('PRESSED')
        if key == keyboard.Key.esc:
            listener.stop()
    
    
with keyboard.Listener(on_press=on_press) as listener:
        listener.join()

请注意,使用“keyboard.Key”您可以检测到所需的按键。您甚至可以重现同时按住两个键并检测组合的情况!


0
投票

这是我编写的代码,但仅适用于带有窗口的 Pygame 项目 如果您需要 pygame 中的箭头,我推荐此代码:

from pygame.locals import *
import pygame
import sys

window_height = 100
window_width = 100

window = pygame.display.set_mode((window_width, window_height))
# This is the code to check if a player is pushing the arrows

while True:
    for evenement in pygame.event.get():
        if evenement.type == QUIT or (evenement.type == KEYDOWN and 
                                      evenement.key == K_ESCAPE):
            print('QUIT')
            pygame.quit()
            sys.exit()

        if evenement.type == KEYDOWN and evenement.key == K_RIGHT:
            print("Clicked on the right arrow")
        if evenement.type == KEYDOWN and evenement.key == K_LEFT:
            print("Clicked on the left arrow")
        if evenement.type == KEYDOWN and evenement.key == K_UP:
            print("Clicked on the up arrow")
        if evenement.type == KEYDOWN and evenement.key == K_DOWN:
            print("Clicked on the down arrow")

0
投票

您可以使用此代码:

import keyboard
import time

while True:
   try:
        if keyboard.is_pressed('left'):
            print('You Pressed left!')
        elif keyboard.is_pressed('right'):
            print('You Pressed right!')
        elif keyboard.is_pressed('down'):
            print('You Pressed down!')
        elif keyboard.is_pressed('up'):
            print('You Pressed up!')
        time.sleep(0.1)

    except:
        break
© www.soinside.com 2019 - 2024. All rights reserved.