在Python中检测键输入

时间:2013-07-23 16:22:08

标签: python input tkinter keyboard

(2013年)我不知道为什么Python很奇怪,你不能通过谷歌搜索很容易找到这个,但它很简单。

如何检测'SPACE'或实际上是否有任何键? 我该怎么做:

print('You pressed %s' % key)

这应该包含在python核心中,所以请不要链接与核心python无关的模块。

4 个答案:

答案 0 :(得分:20)

你可以制作一个小Tkinter应用程序:

import Tkinter as tk

def onKeyPress(event):
    text.insert('end', 'You pressed %s\n' % (event.char, ))

root = tk.Tk()
root.geometry('300x200')
text = tk.Text(root, background='black', foreground='white', font=('Comic Sans MS', 12))
text.pack()
root.bind('<KeyPress>', onKeyPress)
root.mainloop()

答案 1 :(得分:3)

使用Tkinter 这里有大量的在线教程。 基本上,你可以创建事件。这是一个很棒的网站link! 这样可以轻松捕获点击次数。 此外,如果您正在尝试制作游戏,Tkinter也有一个GUI。 虽然,我根本不会推荐Python用于游戏,但它可能是一个有趣的实验。 祝你好运!

答案 2 :(得分:2)

键输入是预定义的事件。您可以使用一个或多个现有绑定方法event_sequenceevent_handle,{{1}将bind(s)附加到bind_class(s)来捕获事件。 },tag_bind)。为了做到这一点:

  1. 定义bind_all方法
  2. an events list
  3. 中选择适合您案例的活动(event_handle

    当事件发生时,所有这些绑定方法都会在传递event_sequence对象时隐式调用event_handle方法,该对象包含有关事件特定信息的信息,作为参数。

    为了检测键输入,可以先捕获所有Event'<KeyPress>'个事件,然后找出使用'<KeyRelease>'属性时使用的特定键。

    以下示例使用event.keysym来捕获特定小部件(bind)上的'<KeyPress>''<KeyRelease>'个事件:

    root

答案 3 :(得分:0)

使用内置的:(无需tkinter)

s = input('->>')
print(s) # what you just typed); now use if's