2016-07-17 108 views
1

我的問題很簡單。我想在用戶按住一個鍵時運行一個循環,在我的例子中是R按住鍵盤鍵時循環

問題是:我不想想要使用PyGame,並且控制檯窗口不會被聚焦。 (Selected)

編輯:我看到這個問題被標記爲重複。我檢查了另一個線程,兩者之間的主要區別在於,這需要檢查一個要保留的密鑰,python /控制檯窗口焦點沒有被選中。

+0

聽起來像你需要一些線程來聽取鍵盤輸入...你有什麼試圖實現這一點? –

+0

@ cricket_007我不知道該怎麼嘗試,我在Google上發現的所有內容都是針對PyGame的。 **編輯:**你需要告訴我如何使用多線程,因爲沒有人能夠幫助我。 – spikespaz

+2

重複? http://stackoverflow.com/questions/11918999/key-listeners-in-python –

回答

0

如果您使用的是Windows:

MSVCRT可能是你正在尋找(https://docs.python.org/2/library/msvcrt.html)庫。 此lib中包含的kbhit功能,「如果一個按鍵被等待讀返回true」:

from msvcrt import kbhit, getch 

while (kbhit()): 
    getch() 
    #code 

的殘培讀取密鑰,因此它不會在循環永留(因爲功能的kbhit仍然檢測到未讀取的密鑰)。

+0

謝謝!一個小問題:如果控制檯窗口沒有對焦,它不能檢測到按鍵。 '''while True: 如果kbhit()和getch()== b'r':''' – spikespaz