【发布时间】:2016-04-18 08:03:58
【问题描述】:
场景如下: 当我的活动小部件是 QSpinBox 时,我可以通过单击或按住框的箭头或按或 按住 Page Up/ 来更改值Page Down/ ▲ / ▼ 。
问题是,我在 valueChanged() 上有一些硬件通信,这需要几毫秒。 当我永久滚动(鼠标)或按住框箭头时,这不是问题,因为这里的滚动似乎更慢(加速关闭),但是当我使用我的键盘时(加速也关闭),滚动速度是快得多,这会导致计时问题。应用程序变慢,然后冻结几秒钟,直到事件队列完成。
我需要允许使用键盘输入(包括按住键盘键),所以我想知道是否有办法减慢箭头/向上/向下的键重复率。
实际上,我在值更改时触发了一个 200 毫秒的 oneshot 计时器,它在超时时传递了 spinbox 值。只有在没有运行时才会触发计时器。这意味着当我更改值时,它总是会有 200 毫秒的延迟,并且更新频率只能是 5 更新/秒 或更慢。它确实有效,但我真的很想通过某种方式降低键重复率来改进它。
【问题讨论】: