KeyPressEvent в Qt - PullRequest
       3

KeyPressEvent в Qt

3 голосов
/ 20 ноября 2011

Я делаю приложение для сопоставления некоторых сочетаний клавиш с каким-либо событием. Итак, мне нужно обнаружить нажатия клавиш после нажатия кнопки. Например, у меня есть кнопка с надписью «изменить». Когда я нажимаю на него, текст на нем меняется на «нажать клавиши», тогда мне нужно, чтобы пользователь набрал быстрые клавиши, которые он хочет отобразить, а затем текст кнопки меняется на нажатые клавиши. Во время серфинга в сети мне удалось найти только функцию:

  void MainWindow::keyPressEvent(QKeyEvent *event)
  {
  ...
  }

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

1 Ответ

6 голосов
/ 20 ноября 2011

Вы можете установить переменную состояния, которая указывает, что пользователь нажал кнопку.Затем предполагается, что окно реагирует на следующее keyPressEvent (только когда установлена ​​эта переменная состояния) и впоследствии сбрасывает переменную состояния.

void MainWindow::keyPressEvent(QKeyEvent *event)
{
    if (process_key) {
        /* Do whatever needs to be done */
        process_key = false
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...