2010-11-17 56 views
4

我想將左右箭頭鍵作爲輸入之一。 我怎樣才能得到它?有什麼辦法嗎?如何將輸入作爲左箭頭鍵?

+0

請定義「輸入」,在控制檯上輸入?在窗戶上?如果是的話,哪個GUI框架被用來創建窗口? – 2010-11-17 13:29:10

+0

我想在窗口上輸入。它由一些文本字段條目組成,如果按左箭頭鍵則表示光標必須移回一個字段。這是我需要的。那麼我已經使用GLADE(gtk-builder)和python來創建窗口。 – gnubala 2010-11-21 06:01:05

+0

終端腳本 - 我很抱歉未提前澄清。我的工作從來沒有涉及圖形用戶界面,所以它不在我的腦海 – daniel 2013-02-01 00:23:52

回答

0

這是可能的:

CursesUrwidPyGame

Tkinter是在標準庫。

+0

tkinter是在標準庫... – Ant 2010-11-17 14:43:32

+0

噢。抱歉! – user225312 2010-11-17 15:00:57

+0

Curses也在標準庫中,不是嗎? – JFA 2014-03-31 03:25:54

6

使用Tkinter的,你可以做以下的....我發現它在網絡上

# KeyLogger_tk2.py 
# show a character key when pressed without using Enter key 
# hide the Tkinter GUI window, only console shows 

try: 
    # Python2 
    import Tkinter as tk 
except ImportError: 
    # Python3 
    import tkinter as tk 

def key(event): 
"""shows key or tk code for the key""" 
    if event.keysym == 'Escape': 
     root.destroy() 
    if event.char == event.keysym: 
    # normal number and letter characters 
     print('Normal Key %r' % event.char) 
    elif len(event.char) == 1: 
     # charcters like []/.,><#$ also Return and ctrl/key 
     print('Punctuation Key %r (%r)' % (event.keysym, event.char)) 
    else: 
     # f1 to f12, shift keys, caps lock, Home, End, Delete ... 
     print('Special Key %r' % event.keysym) 


root = tk.Tk() 
print("Press a key (Escape key to exit):") 
root.bind_all('<Key>', key) 
# don't show the tk window 
root.withdraw() 
root.mainloop() 
+2

如果目標是一個小的,最小的腳本,那麼這是相當複雜的。是否認真沒有一個/兩個線路解決方案? – daniel 2013-01-31 23:35:32

2

這就是你可以用ncurses的做到這一點。與TkInter不同,X11不是必需的。

#! /usr/bin/python 

import curses 

screen = curses.initscr() 
try: 
    curses.noecho() 
    curses.curs_set(0) 
    screen.keypad(1) 
    screen.addstr("Press a key") 
    event = screen.getch() 
finally: 
    curses.endwin() 

if event == curses.KEY_LEFT: 
    print("Left Arrow Key pressed") 
elif event == curses.KEY_RIGHT: 
    print("Right Arrow Key pressed") 
else: 
    print(event)