我不知道爲什麼Python很奇怪,你不能通過在google中搜索很容易找到它,但它很簡單。在Python中檢測鍵輸入
如何檢測'SPACE'或實際上是否有任何鍵? 我怎樣才能做到這一點:
print('You pressed %s' % key)
這應包括在Python的內核,所以請不要鏈接不相關的核心Python模塊。
我不知道爲什麼Python很奇怪,你不能通過在google中搜索很容易找到它,但它很簡單。在Python中檢測鍵輸入
如何檢測'SPACE'或實際上是否有任何鍵? 我怎樣才能做到這一點:
print('You pressed %s' % key)
這應包括在Python的內核,所以請不要鏈接不相關的核心Python模塊。
你可以做一個小的Tkinter應用:
import Tkinter as tk
def onKeyPress(event):
text.insert('end', 'You pressed %s\n' % (event.char,))
root = tk.Tk()
root.geometry('300x200')
text = tk.Text(root, background='black', foreground='white', font=('Comic Sans MS', 12))
text.pack()
root.bind('<KeyPress>', onKeyPress)
root.mainloop()
使用Tkinter的 有一噸的教程在網上的這個。基本上,你可以創建事件。這是一個偉大的網站link! 這可以很容易地捕捉點擊。另外,如果你想製作遊戲,Tkinter也有一個GUI。 雖然,我不會推薦Python的遊戲,但它可能是一個有趣的實驗。 祝你好運!
鍵輸入是一個預定義的事件。您可以通過使用一種或多種現有綁定方法(bind
,bind_class
,tag_bind
,bind_all
)將event_sequence
(s)附加到event_handle
(s)來捕獲事件。爲了做到這一點:
event_handle
方法當一個事件發生的情況下,一個事件(event_sequence
),所有這些結合方法的隱式調用event_handle
方法,同時傳遞一個Event
對象,其中包含有關發生的事件的具體信息作爲參數。
爲了檢測鍵輸入,可以先捕獲所有的'<KeyPress>'
或'<KeyRelease>'
事件,然後通過使用event.keysym
屬性找出使用的特定密鑰。
下面是一個例子使用bind
捉對一個特定的微件(root
)二者'<KeyPress>'
和'<KeyRelease>'
事件:
try: # In order to be able to import tkinter for
import tkinter as tk # either in python 2 or in python 3
except ImportError:
import Tkinter as tk
def event_handle(event):
# Replace the window's title with event.type: input key
root.title("{}: {}".format(str(event.type), event.keysym))
if __name__ == '__main__':
root = tk.Tk()
event_sequence = '<KeyPress>'
root.bind(event_sequence, event_handle)
root.bind('<KeyRelease>', event_handle)
root.mainloop()
不使用Tk的需要的圖形窗口?我正在研究嵌入式系統。下面的sys.strin.read()是誘人的,但你需要按回車鍵。 – user391339
@ user391339:我認爲Tk需要一個窗口系統或虛擬顯示器。對於嵌入式系統,'getch'配方如[this one](http://stackoverflow.com/a/21659588/190597)可能會更好。 – unutbu
請注意,這隻適用於Python 3.x –