微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于QT/E的嵌入式Linux系统的软键盘实现

基于QT/E的嵌入式Linux系统的软键盘实现

时间:06-13 来源:互联网 点击:


图4中,初始化按键时,可以使用QSignalMapper类来捆绑不同按键所发送的一系列无参数信号,并将其转发为有参数的信号:
QSignalMapper*mapper=new QSignalMapper(this);
QSignalMapper的主要应用为可以实现一个函数响应不同按钮的功能,下面举例来说明图4的具体实现过程:
首先设置软键盘界面名称为ui,然后以数字键“1”为例:将在图3中数字键1对应的按键名称设为:n1,在图4中的第(1)步中,建立键值“1”所对应的映射,代码如下:
mapper->setMapping(ui.n1,“1”);
接着,在图4中的第(2)步,需要建立键值clicked对应的信号与槽之间的关系代码如下:
connect(ui.n1,SIGNAL(clicked()),mapper,SLOT(map()));
最后,将所需要用到的字母或者数字通过上述方式连接到槽函数中。如图4中的(3),将这些所要求得到的字母或者数字发送给焦点控件,代码如下:
connect(mapper,signal(mapped(const QString)),im,slot(sendcontent(const QStling)))
上面语句中sendcontent()函数为发射子函数,具体代码如下:
sendCommitString(content); (1)
content.clear(); (2)
语句(1)将焦点控件内的字母和数字发送出去,语句(2)清除发送框中的字母和数字,供下一次使用。
可以采用同样的方式,对软键盘中其它的按键进行映射函数和连接函数的编写,然后在arm-linux-gcc环境下编译,生成可以在arm板上运行的二进制文件。
3.3 下载到目标板上运行
本文的设计思路是:先将程序代码在PC机上调试通过,然后将调试通过的程序代码在RAM-linux-gcc环境下进行编译,生成可以在RAM板上运行的二进制文件,最后将此二进制文件下载到目标板中。本文的前提是QT4.5.3环境已经移植到开发板上,具体移植步骤在这里不作介绍。在终端上面,运行启动软键盘指令,命令行后面加上“-qws”指令,运行结果如图5所示。

图5是在实际项目中需要的预设手机号码的界面,在系统运行前要先设置手机号码,以便系统故障时能够自动的给对应的手机用户发送预警信息,使用户能够实时的了解自己系统的运行状态。在该界面中,准备预设手机号码时,直接选择打开软键盘按钮,图3所示的预制的软键盘会弹出界面,选择要求预设的手机号码值,完成之后选择exit按键,软键盘关闭。在此就可以用图5所示的软键盘完成手机号码的预设。

4 结束语
随着Linux操作系统的广泛应用以及人们对GUI人机交互界面的更多需求,本文在linux操作系统的QT开发套件下,分析了软键盘实现的原理,并完成了软键盘的设计。此软件盘可以根据用户的要求来添加按键,与外部接入实体键盘相比,不仅便利,还节约成本。通过实践证明此软键盘具有较强的实时性和可靠性,可以广泛的应用于各种QT界面中。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top