Ir ao conteúdo
  • Cadastre-se

Python Fazer uma ação quando o usuário pressionar uma tecla


Posts recomendados

from pynput.keyboard import Key, Listener

def on_release(key):
    print(key)

with Listener(on_release=on_release) as Listener:
    Listener.join()

 

Esse código imprime cada tecla pressionada, porém como eu posso fazer uma ação como, imprimir 1, 2, 3 quando o usuário apertar, por exemplo, a tecla 's'?

Penso que o Pynput não consegue fazer isso, porquê olhando no final da documentação dele, aparenta só consegue fazer uma ação ao apertar algumas teclas, como o espaço

 

from pynput.keyboard import Key, Listener

def on_release(key):
    if key == key.space:
        print('Foi')

with Listener(on_release=on_release) as Listener:  
    Listener.join()

Isso se prova quando eu troco o espaço por alguma letra do teclado como o 's', retornando o seguinte erro: AttributeError: 'KeyCode' object has no attribute 's'

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Encontrei duas formas:

 

Pynput:

Obs: Ao colocar o .char, ele retorna um AttributeError caso aperte uma tecla que não seja letra, número ou símbolo

from pynput.keyboard import Key, Listener

def on_press(key):
    try:
        if key.char == 's':
            print('Foi')
        else:
            print('Não Foi')
    except AttributeError:
        print('Não Foi')

with Listener(on_press=on_press) as listener:
        listener.join()

msvcrt

from msvcrt import getch, kbhit

def kbfunc():
    while True:
        y = kbhit()
        if y:
            key = getch()
            if key.decode() == 's':
                print('Foi')
kbfunc()

Desvantagem do msvcrt: Captura apenas as teclas do programa em que é executado, por exemplo, se você abrir o notepad e escrever algo, o msvcrt não captura a tecla

 

Já o pynput captura as teclas não importa qual programa você execute

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!