前言:
此时朋友们对“c语言函数的使用单选”大致比较关怀,各位老铁们都需要知道一些“c语言函数的使用单选”的相关文章。那么小编在网络上搜集了一些对于“c语言函数的使用单选””的相关资讯,希望大家能喜欢,同学们快快来学习一下吧!h文件中声明下面两个函数
void keyPressEvent(QKeyEvent *event);void keyReleaseEvent(QKeyEvent *event);
.cpp文件中实现两个函数
void record::keyPressEvent(QKeyEvent *event){switch(event->key()){case Qt::Key_Alt:alt_key = KEY_STATE_Press;CLogC_debug("%s:This is debug: alt_key Press\n", __FUNCTION__);break;case Qt::Key_Control:ctrl_key = KEY_STATE_Press;CLogC_debug("%s:This is debug: ctrl_key Press\n", __FUNCTION__);break;}}void record::keyReleaseEvent(QKeyEvent *event){switch(event->key()){case Qt::Key_Alt:alt_key = KEY_STATE_Release;CLogC_debug("%s:This is debug: alt_key Release\n", __FUNCTION__);break;case Qt::Key_Control:ctrl_key = KEY_STATE_Release;CLogC_debug("%s:This is debug: ctrl_key Release\n", __FUNCTION__);break;}}
后来发现press不能用,出现不了,主要原因是mainwindow目前拥有获取键盘的焦点,导致其他子widget界面不能获取键盘事件焦点
解决办法:在构造函数加入:
this->grabKeyboard();
这个小组件接收所有的键盘事件,直到调用releaseKeyboard();其他小组件完全没有得到键盘事件。鼠标事件不受影响。如果你想抓取,请使用 grabMouse() 。
setFocus()像往常一样移动焦点,但新的焦点部件只有在调用releaseKeyboard()后才能接收键盘事件。
如果一个不同的小组件目前正在抓取键盘输入,该小组件的抓取会首先被释放。
参见releaseKeyboard(), grabMouse(), releaseMouse(), and focusWidget()。
这个 grabKeyboard会影响其他界面的键盘输入
这是就调用 类对象->releaseKeyboard(); //释放键盘获取
类对象->grabKeyboard(); //获取键盘的获取权
这就是界面切换:切换到会诊中心界面,让record界面释放键盘获取权,切换到record界面,取得键盘获取权
【领QT开发教程学习资料,点击下方链接莬费领取↓↓,先码住不迷路~】
点击这里:「链接」
标签: #c语言函数的使用单选