在 Qt 4.8 中将 QInputEvent 放入 QEventLoop 队列时获取时间戳

Get the timestamp when a QInputEvent was put onto the queue of the QEventLoop in Qt 4.8

这个问题与QEventLoop: get time when an event was scheduled密切相关。在这里,我特别询问与 "all kinds of events" 相比的输入事件。我也对 Qt 4.8 的解决方案感兴趣。

对于 Qt 5 中的 QInputEvent,有一个可以使用的 timestamp() 成员方法。在 Qt 4.8 中没有这样的方法。当输入事件最初由 driver/deeper 系统 "emitted" 时,是否有任何其他方法来获取时间戳。还是最初由 Qt "received" 放入事件队列时?

我查看了嵌入式 Qt 中的不同 keyboard/input 驱动程序,发现没有任何时间戳处理。所以可用的默认实现不令人满意。

我通过在我的特定平台上实现我自己的逻辑设法获得了时间戳。在我的例子中,这需要从 dev/input/event 文件中读取并自己创建 QInput 事件。每个键盘输入还包含一个时间戳,似乎是输入发生时的时间戳。