首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

嵌入式Linux系统的软键盘实现 03

嵌入式Linux系统的软键盘实现 03

3.2 软键盘实现
   
    如图3所示,首先建立了足项目要求的软键盘的基本模型,接下来要实现的就是当按键响应时能够读出键盘值并将其发送出去,具体实现的流程如图4所示。


    图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板上运行的二进制文件。
返回列表