QT Обнаружение нажатия и отпускания клавиши возврата или ее длительного нажатия

Я использую QT в Windows 10.

Я использую QDialog, где я хочу нажать QPushButtons также с помощью клавиши возврата. Однако я хочу, чтобы пользователь должен был нажать клавишу возврата и снова отпустить ее. Длительное нажатие клавиши возврата должно сработать только один раз, а не несколько раз.

Я проверил keyPressEvent и keyReleaseEvent, но, к сожалению, когда я долго нажимаю клавишу возврата, я постоянно получаю keyReleaseEvent и keyPressEvent.

Любые идеи, как я могу определить, долго ли нажимается клавиша возврата или как я могу отключить функцию длительного нажатия?


person Quizard    schedule 24.05.2020    source источник


Ответы (1)


вы можете запустить таймер в keyPressEvent и в keyReleaseEvent прочитать истекшее

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

а можно поставить метку на долгое нажатие

person Vahagn Avagyan    schedule 25.05.2020
comment
Не совсем то, что я хотел, но обходной путь работает, и я могу с этим жить. Большое спасибо - person Quizard; 07.06.2020