使用时如何区分按下、松开和长按QAbstractButton::autoRepeat

How to distinguish between pressed, released and long press when using QAbstractButton::autoRepeat

我在 Linux 上使用 Qt 4.8.X 和 X11 and/or Qt-QWS 以及派生自 QAbstractButton 的自定义按钮。现在我必须区分按钮按下、释放和用户按住按钮。为此,我想按照 in this question 所述使用 QAbstractButton::autoRepeat。 正如 QT Documentation 所述

If autoRepeat is enabled, then the pressed(), released(), and clicked() signals are emitted at regular intervals.

好吧,当所有三个信号同时发出时,我现在如何区分实际按下、按住和释放按钮?非常欢迎您的想法。谢谢和问候。

也许在这里使用 autoRepeat 并不是最好的主意。我不知道你到底想做什么,但我的第一个猜测是关闭 autoRepeat。如果用户按下按钮,您将收到按下信号。在该回调中,您可以启动一个计时器,该计时器会在您想要的 "auto Repeat" 间隔内触发。如果用户再次释放按钮(信号释放),您只需停止或终止计时器。