Qt 之arm下屏蔽Ctrl+alt+Backspace组合键

QWS的全称是Qt windows system,它是QT自行开发的窗口系统,是一种C/S结构,由QWS Server在物理设备上显示,由QWS Client实现界面,两者通过socket进行彼此的通讯。在很多嵌入式系统里,QT4程序基本上都是用QWS来实现,这样保证程序的可移植性。

QWS Server程序构造方法是构造一个QApplication::GuiServe类型的QApplication对象。或者使用-qws命令选项启动程序。

在运行QT程序时添加-qws参数,表示这个程序是QWS Server,否则是QWS Client。任何一个基于QT的application都可以做QWS Server。当然QWS Server一定先于QWS Client启动,否则QWS Client将启动失败。在实际应用中,会指定某个特殊的application做QWS Server,这个application一般还会管理一些其它的系统资源。

在Qt5中已经抛弃了QWS框架,改为使用QPA框架。
在-qws模式下,ctrl+alt+backspace组合键会将app推出,并且挂死。
经过研究源代码发现解决方案:源码目录: gui\embedded\qkbd_qws.cpp 文件下的WSKeyboardHandler::KeycodeAction QWSKeyboardHandler::processKeycode(quint16 keycode, bool pressed, bool autorepeat)

函数,注释掉其中的SystemZap 分支处理
case QWSKeyboard::SystemZap:
//if (!d->m_no_zap)
//qApp->quit();

break;


版权声明:本文为u011942101原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。