QT 获取键盘按键(keyEvent获取不到方向键及空格键) |
您所在的位置:网站首页 › 空格键按键码怎么输入不了 › QT 获取键盘按键(keyEvent获取不到方向键及空格键) |
(本文章旨在个人回顾知识点) 需求:获取方向键然后操作。 问题:qt 类使用void keyPressEvent(QKeyEvent *event);判断方向键时出现获取不到按键事件 原因:在QT类获取键盘焦点时才可以获取事件。(在界面比较复杂时,焦点很可能不在当前QT类) 解决方法: 1.在类的构造函数中添加: setFocusPolicy(Qt::StrongFocus); //只能解决特别简单界面,而且刚进入界面时需点击一下界面2.在eventFilter()事件筛选器中筛选出来:(当焦点被子控件如输入文字等控件获取的时候,是无法触发eventFiter,但这就已经满是我的功能需求了) //在qt类构造函数中加入 setFocusPolicy(Qt::StrongFocus); installEventFilter(this); //在bool eventFilter(QObject* object, QEvent* event)加入 if (event->type() == QEvent::KeyPress) { QKeyEvent *keyEvent = static_cast(event); int i = 0; if (keyEvent->key() == Qt::Key_Left || keyEvent->key() == Qt::Key_Up) { DoingSomething1(); } else if (keyEvent->key() == Qt::Key_Right || keyEvent->key() == Qt::Key_Down) { DoingSomething2(); } } return false;3.如果是在windows系统下开发的话,可以使用钩子实现。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |