Qt 实现 禁用快捷键
前提要点
在我们使用 QDialog 时,所有的跨界件都是默认打开的,在我使用的过程中,突然发现 esc 也可以关闭页面,当我以为这是一个简便方法事,同事告诉我不能这样,在之后的使用过程中会遇到太多太多的麻烦。因此 我通过查询总结一下关于 QDialog 关闭使用快捷键。
例如 esc
在查询过程中发现,当按下 Esc 键时,会默认执行 reject()函数,但是这个函数以及他的点击函数都是系统默认的,因此我们需要重写函数,我在查找过程中发现一个例子(有兴趣的可以打开看看),在这个帖子中发,他需要重写 keyPressEvent 和 reject 这两个函数,并且在他的帖子里,不仅仅禁止了 esc 的快捷方式。
我所使用的代码:
.h
.cpp
这个方法比上面链接上的更为简便,它只需要使用一个函数就可以对 esc 的快捷键进行禁用。
接下来展示的是他一些比较常用的方法
Qt::Key_Escape Esc 键
Qt::Key_Tab Tab 键
Qt::Key_Backtab Tab 补全键
Qt::Key_Backspace 退格键
Qt::Key_Return Return 键
Qt::Key_Enter 回车键
Qt::Key_Insert Insert 键
Qt::Key_Delete Delete 键
Qt::Key_Pause 暂停键
Qt::Key_Print 截图键
Qt::Key_SysReq PrtSc
Qt::Key_Clear 清除键
Qt::Key_Home Home 键
大家可以在使用的过程中对症下药,使用自己需要的,并不需要长篇大论的全部写上。使用的方式和我的例子一样就可以了,在 switch 的 case 中使用,并且在下面写上自己用对应的内容。
总结
以上部分就是今天的更新啦,有不对的地方恳请各位多多指教。
版权声明: 本文为 InfoQ 作者【用户10086】的原创文章。
原文链接:【http://xie.infoq.cn/article/f3bd683c2afff569ac27a75e1】。文章转载请联系作者。
评论