我对编程非常陌生并尝试编写一个相当简单的程序,记录不同键盘按钮之间的时间(有点像多个反应时间测试)并在屏幕上以数组形式打印这些时间,然后终止并在一段时间结束后保存数组。
我放弃了Tkinter后已经在pygame中编写了大部分程序,因为它似乎是实时响应键盘输入的最佳选择。但是,现在我希望文本在屏幕填满后自动滚动,向阵列添加更多列,然后导出到Excel,我开始怀疑我是否会更适合使用更适合的模块文字处理。
任何人都可以告诉我在pygame中是否犯了错误,是否可以立即响应Tkinter中的多个键盘输入?如有必要,我可以提供更多细节。
答案 0 :(得分:0)
使用Tkinter,您可以绑定到<Any-KeyPress>
。调用的函数传递一个具有时间戳的事件对象。您可以使用它来计算事件之间的时间。
这是一个快速示例,显示如何显示按键之间的时间。您当然可以添加自己的逻辑来计算,跟踪和显示您想要的内容。
import Tkinter as tk
class Example(tk.Frame):
def __init__(self, parent):
self.last_event = None
tk.Frame.__init__(self, parent)
self.label = tk.Label(self, text="")
self.text = tk.Text(self, wrap="word")
self.label.pack(side="top", fill="x")
self.text.pack(fill="both", expand=True)
self.text.bind("<Any-KeyRelease>", self.on_key_release)
def on_key_release(self, event):
if self.last_event is not None:
delta = event.time - self.last_event.time
self.label.configure(text="time since last event: %s ms" % delta)
self.last_event = event
if __name__ == "__main__":
root = tk.Tk()
Example(root).pack(fill="both", expand=True)
root.mainloop()