首页 > 解决方案 > QT检测是否按下并释放返回键或是否长按

问题描述

我在 Windows 10 上使用 QT。

我正在使用一个 QDialog ,我想用返回键按下 QPushButtons 。但是,我希望用户必须按下返回键并再次释放它。长按返回键应该只工作一次,而不是几次。

我检查了keyPressEvent和keyReleaseEvent,但不幸的是,当我用返回键长按时,我不断得到keyReleaseEvent和keyPressEvent。

有什么想法,我如何检测返回键是否被长按或如何禁用长按功能?

标签: qtqkeyevent

解决方案


您可以在 keyPressEvent 中启动计时器,并在 keyReleaseEvent 中读取 elapsed

QElapsedTimer mTimer;
keyPressEvent ()
{
  .....
  mTimer.start();
  .....
}
keyReleaseEvent ()
{
  .....
  int mMilliseconds = mTimer.elapsed();
  .....
}

你可以设置标签长按


推荐阅读