2016-04-11 13 views
-1

私は、キー押しがPythonプログラムで検出されるようにしようとしています。私は、Tkinter、curses、またはraw_inputを使用せずにこれを行う方法を見つけたいと思います。ここに私が行っていることがあります:Keypress detection

while True: 
    if keypressed==1: 
     print thekey 

これはどのように可能ですか?

+0

'win32api.GetKeyState':あなたは、複数のキー検出を設定することができます

import keyboard #Using module keyboard while True:#making a loop try: #used try so that if user pressed other than the given key error will not be shown if keyboard.is_pressed('a'): #if key 'a' is pressed print('You Pressed A Key!') break #finishing the loop else: pass except: break #if user pressed other than the given key the loop will break 

。 – Kevin

+2

"Tkinter、curses、またはraw_inputを使用せずにこれを行う方法を見つけたいのですが、どうしてですか?これらのツールは何が望ましくないのでしょうか? [ツールX]を使ってそれを行う方法を教えても、[ツールX]を使わないで行う方法を理解したいと思っていますか? – user2357112

+0

上記コメントと同じです。毎回ホイールを再構築する必要はありません –

答えて

1

Pythonには多くの機能を持つkeyboardモジュールがあります。おそらく、このコマンドを使用して、それをインストールします。次に

pip3 install keyboard 

のようなコードでそれを使用します。

if keyboard.is_pressed('a') or keyboard.is_pressed('b') or keyboard.is_pressed('c'): 
    #then do this 
0

あなたの質問を少し編集する自由を取ったので、意味があり、少なくともWindowsでは答えがあります。 (IDLEだけTKへのTkinterインタフェースによってキーボードと対話する。)Windowsでは、答えは、他のシステムではmsvcrt module's console io functions

import msvcrt as ms 

while True: 
    if ms.kbhit(): 
     print(ms.getch()) 

を使用することで、あなたは、同等のシステム固有の呼び出しを見つける必要があります。 posixシステムの場合、これらはcursesの一部であるかもしれませんが、使用しないと言ったが、わかりません。

これらの機能は、プログラムの実行時にデフォルトモードでIDLEから実行されたときに正しく機能しません。他のグラフィックスモードIDEでも同じことが当てはまります。