如何使用python 3檢測密鑰發佈?
一樣,如果我按下鍵a
1秒,當我從關鍵刪除我的手指(釋放鍵),它會print("Key 'a' pressed then released")
。如何使用python(而不是按鍵)檢測密鑰發佈?
我試圖用模塊keyboard
來做,但我不知道它。我用它來檢測按鍵。
msvcrt
模塊不適合我,但如果msvcrt
可以做我想做的,那麼你可以回答我。
注:
我不想使用Pygame
或任何其他module
這將顯示彈出式窗口
一樣,如果我按下鍵a
1秒,當我從關鍵刪除我的手指(釋放鍵),它會print("Key 'a' pressed then released")
。如何使用python(而不是按鍵)檢測密鑰發佈?
我試圖用模塊keyboard
來做,但我不知道它。我用它來檢測按鍵。
msvcrt
模塊不適合我,但如果msvcrt
可以做我想做的,那麼你可以回答我。
我不想使用Pygame
或任何其他module
這將顯示彈出式窗口
你可以使用pynput
模塊:
from pynput import keyboard
def on_key_release(key):
print('Released Key %s' % key)
with keyboard.Listener(on_release = on_key_release) as listener:
listener.join()
根據pynput
的文檔,鍵盤監聽器是一個線程,它使用key參數調用on_release
上指定的函數。您也可以指定一個on_press
函數。
編輯:
至於問討論,您可以通過從on_key_release
函數返回false
停止監聽。這樣的:
def on_key_release(key):
print('Released Key %s' % key)
return False
好的工作,你解決了我的問題:) –
這是好的,但請讓它更容易理解。 –
[**討論聊天室**](https://chat.stackoverflow.com/rooms/151484/disccusions-between-franz-forstmayr-and-muhammad-nouman) –
可以使用tkinter
它:
from tkinter import *
def keyup(e):
print('up', e.char)
def keydown(e):
print('down', e.char)
root = Tk()
frame = Frame(root, width=100, height=100)
frame.bind("<KeyPress>", keydown)
frame.bind("<KeyRelease>", keyup)
frame.pack()
frame.focus_set()
root.mainloop()
使用Tkinter的,並假設你使用python3,你可以這樣做很容易類似Acafed的回答,:
from tkinter import Tk,Frame #importing only necessary stuff.
def keyrelease(e):
print('The key was released: ', repr(e.char))
root = Tk()
f = Frame(root, width=100, height=100)
f.bind("<KeyRelease>", keyrelease)
f.pack()
root.mainloop()
[?這(https://github.com/ boppreh /鍵盤#keyboard.on_release)。你可以在你提供的鏈接上點擊一下 –
你的模塊字面上包含一個你要求的例子:https://github.com/boppreh/keyboard/blob/master/examples/pressed_keys.py – BoboDarph