我的問題很簡單。我想在用戶按住一個鍵時運行一個循環,在我的例子中是R
。按住鍵盤鍵時循環
問題是:我不想想要使用PyGame,並且控制檯窗口不會被聚焦。 (Selected)
編輯:我看到這個問題被標記爲重複。我檢查了另一個線程,兩者之間的主要區別在於,這需要檢查一個要保留的密鑰,python /控制檯窗口焦點沒有被選中。
我的問題很簡單。我想在用戶按住一個鍵時運行一個循環,在我的例子中是R
。按住鍵盤鍵時循環
問題是:我不想想要使用PyGame,並且控制檯窗口不會被聚焦。 (Selected)
編輯:我看到這個問題被標記爲重複。我檢查了另一個線程,兩者之間的主要區別在於,這需要檢查一個要保留的密鑰,python /控制檯窗口焦點沒有被選中。
如果您使用的是Windows:
MSVCRT可能是你正在尋找(https://docs.python.org/2/library/msvcrt.html)庫。 此lib中包含的kbhit功能,「如果一個按鍵被等待讀返回true」:
from msvcrt import kbhit, getch
while (kbhit()):
getch()
#code
的殘培讀取密鑰,因此它不會在循環永留(因爲功能的kbhit仍然檢測到未讀取的密鑰)。
謝謝!一個小問題:如果控制檯窗口沒有對焦,它不能檢測到按鍵。 '''while True: 如果kbhit()和getch()== b'r':''' – spikespaz
聽起來像你需要一些線程來聽取鍵盤輸入...你有什麼試圖實現這一點? –
@ cricket_007我不知道該怎麼嘗試,我在Google上發現的所有內容都是針對PyGame的。 **編輯:**你需要告訴我如何使用多線程,因爲沒有人能夠幫助我。 – spikespaz
重複? http://stackoverflow.com/questions/11918999/key-listeners-in-python –