总是关注隐藏的小工具?(Qt c++)



我正在学习在Qt (c++)中处理按键和键释放事件。我有一个类Keyboard,我想用它来处理所有这些事件。它继承了QObject。它不需要处理任何鼠标事件。当我的应用程序向该类打开时,我想弄清楚如何指导所有的键盘输入。

我已经尝试添加它作为一个小部件在我的MainWindow类的布局和隐藏它(小部件,不是布局)。当前没有响应。

我也试过在我的MainWindow类:

void MainWindow::keyPressEvent(QKeyEvent *event)
{
    keys->keyPressEvent(event); 
    //Keys is a Keyboard object with this public method:
    //void keyPressEvent(QKeyEvent *event);
} 

但这也不起作用。在我的Keyboard::Keyboard()构造函数中,我有:

this->setFocusPolicy(Qt::StrongFocus);

我不确定我是否还需要做些什么来确保键盘输入到达那里。

如果有人知道一种方法来发送所有键盘事件到这个类为我的Qt应用程序,这将是非常有帮助!

谢谢,约翰

谁想知道,我找到了我的问题的答案。

在处理键盘事件的类的构造函数中,我添加了这一行:

QWidget::grabKeyboard();

,现在当应用程序处于活动状态时,所有键盘输入都直接进入该小部件。您可以查看参考资料以获取更多信息:QWidget:: grabKeyboard。

注意:在您调用QWidget::releaseKeyboard()之前,没有其他任何东西(即没有其他小部件)将获得键盘输入。

相关内容

  • 没有找到相关文章

最新更新