Qt:什么决定鼠标事件发射率?
Qt: What governs mouse event emission rate?
我有一个回调函数,它在鼠标移动时执行某些操作。不以最大速率管理它感觉很奇怪。当用户移动鼠标时,什么决定了鼠标回调发生的频率?
我认为这取决于鼠标的轮询率。鼠标轮询率是它报告其位置的频率(以 Hz 为单位)。例如,具有 125 Hz 轮询的鼠标每秒报告其位置 125 次(每 8 毫秒)。
当您移动鼠标时,较高的轮询率可能会导致更多的回调。但它也会使用更多 CPU 资源。
鼠标设备驱动程序。如果您在系统的配置面板上更改鼠标设置,您将看到行为差异。 window 系统将这些事件发送到主进程,这些事件由 QApplication
处理,然后传播到正确的小部件。
除非没有设置事件过滤器,否则小部件的事件传递与本机应用程序一样无缝。毕竟 Qt 事件系统与 OS 用于他们的 window 事件系统的不同之处相匹配。
如果感觉有些奇怪,请仔细检查您的回调实现。问题出在其他地方的可能性很小。
我有一个回调函数,它在鼠标移动时执行某些操作。不以最大速率管理它感觉很奇怪。当用户移动鼠标时,什么决定了鼠标回调发生的频率?
我认为这取决于鼠标的轮询率。鼠标轮询率是它报告其位置的频率(以 Hz 为单位)。例如,具有 125 Hz 轮询的鼠标每秒报告其位置 125 次(每 8 毫秒)。
当您移动鼠标时,较高的轮询率可能会导致更多的回调。但它也会使用更多 CPU 资源。
鼠标设备驱动程序。如果您在系统的配置面板上更改鼠标设置,您将看到行为差异。 window 系统将这些事件发送到主进程,这些事件由 QApplication
处理,然后传播到正确的小部件。
除非没有设置事件过滤器,否则小部件的事件传递与本机应用程序一样无缝。毕竟 Qt 事件系统与 OS 用于他们的 window 事件系统的不同之处相匹配。
如果感觉有些奇怪,请仔细检查您的回调实现。问题出在其他地方的可能性很小。