0

我对编程很陌生,并尝试编写一个相当简单的程序来记录不同键盘按钮按下之间的时间(有点像多次反应时间测试)并将这些时间打印在屏幕上的数组中,然后终止并保存数组一定时间后就起来了。

在放弃 Tkinter 之后,我已经在 pygame 中编写了大部分程序,因为它似乎是实时响应键盘输入的最佳选择。但是,既然我希望文本在屏幕填满后自动滚动,向数组中添加更多列,然后导出到 Excel,我开始想知道我是否会更好地使用更适合的模块文本处理。

谁能告诉我我在 pygame 中尝试这个是否犯了错误,以及是否可以立即响应 Tkinter 中的多个键盘输入?如有必要,我可以提供更多详细信息。

4

1 回答 1

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()
于 2016-06-04T01:38:06.663 回答