Qt中的KeyPressEvent

时间:2011-11-20 19:51:21

标签: c++ qt

我正在制作一个应用程序来处理某些事件的键盘快捷键。因此,我需要在单击按钮后检测按下的键盘快捷键。例如,我有一个按钮,上面有文字“更改”。当我点击它时,它上面的文字变为“按键”然后我需要用户输入他想要映射的快捷键,然后按钮的文本变为按下的键。 在网上冲浪时,我只能找到这个功能:

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

但它不符合我的目的,因为我需要从定义的槽函数调用此函数,以便我只能在需要时检测。 有谁知道如何实现这一目标?

1 个答案:

答案 0 :(得分:6)

您可以设置一个状态变量,指示用户按下按钮。然后该窗口应该对下一个keyPressEvent做出反应(仅当设置了这个状态变量时),然后重置状态变量。

void MainWindow::keyPressEvent(QKeyEvent *event)
{
    if (process_key) {
        /* Do whatever needs to be done */
        process_key = false
    }
}