Qt 实现 禁用快捷键
在我们使用QDialog时,所有的跨界件都是默认打开的,在我使用的过程中,突然发现esc也可以关闭页面,当我以为这是一个简便方法事,同事告诉我不能这样,在之后的使用过程中会遇到太多太多的麻烦。
因此 我通过查询总结一下关于QDialog 关闭使用快捷键。
例如 esc
在查询过程中发现,当按下Esc键时,会默认执行reject()函数,但是这个函数以及他的点击函数都是系统默认的,因此我们需要重写函数,我在查找过程中发现一个例子(有兴趣的可以打开看看),在这个帖子中发,他需要重写
keyPressEvent和reject这两个函数,并且在他的帖子里,不仅仅禁止了esc的快捷方式。
我所使用的代码:
.h
protected:
virtual void keyPressEvent(QKeyEvent *event);
.cpp
switch (event->key())
{
case Qt::Key_Escape:
break;
default:
QDialog::keyPressEvent(event);
}
这个方法比上面链接上的更为简便,它只需要使用一个函数就可以对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中使用,并且在下面写上自己用对应的内容。
总结
以上部分就是今天的更新啦,有不对的地方恳请各位多多指教。
- 点赞
- 收藏
- 关注作者
评论(0)