2016-04-11 27 views
-1

Python programında algılanacak tuşlara basmaya çalışıyorum. Bunu Tkinter, curses veya raw_input kullanmadan yapmanın bir yolunu bulmak istiyorum. İşte gidiyorum:Tuşa basma algılama

while True: 
    if keypressed==1: 
     print thekey 

Bunun nasıl mümkün olduğunu bilen var mı?

+0

'win32api.GetKeyState'. – Kevin

+2

"Bunu Tkinter, curses veya raw_input kullanmadan yapmanın bir yolunu bulmak istiyorum" - neden olmasın? Bu araçları istenmeyen yapan ne? Eğer bunu [tool X] ile nasıl yapacağınızı söylersek, [tool X] olmadan da nasıl yapacağınızı öğrenmek istediğinizi söyleyecek misiniz? – user2357112

+0

Yukarıdaki yorum ile aynı, tekerleği her zaman yeniden icat etmek için gerekli değil –

cevap

1

Python birçok özelliğe sahip bir keyboard modülüne sahiptir. belki de bu komutla, kurun:

pip3 install keyboard 

Ardından gibi kodunda kullanmak:

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 

Birden Anahtar Algılamasını ayarlayabilirsiniz:

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

Sorunuzu düzenlemenin özgürlüğünü biraz aldım, bu yüzden en azından Windows'da bir anlam ifade ediyor ve bir cevabı var. (IDLE sadece tk Tkinter arayüz vasıtasıyla klavyenizdeki ile etkileşime girer.) Windows'ta, cevap diğer sistemler için msvcrt module's console io functions

import msvcrt as ms 

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

kullanmaktır, eşdeğer sisteme özel aramaları bulmak zorunda kalacak. Posix sistemleri için bunlar kullanmamanız söylediğiniz küflerin bir parçası olabilir, ama bilmiyorum.

Program çalıştırıldığında bu işlevler düzgün çalışmaz, varsayılan modda IDLE çalıştırılır. Aynısı diğer grafik modu IDE'leri için de geçerli olabilir.

İlgili konular