0

私はプログラミングにまったく慣れておらず、キーボードの異なるボタンを押す間の時間を記録し(複数の反応時間テストに少し似ています)、これらの時間を配列で画面に出力し、配列を終了して保存するかなり単純なプログラムを作成しようとしています一定時間経過後。

リアルタイムでキーボード入力に応答するには、Tkinter が最適だと思われたため、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 に答える