版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
备忘录之
Embedded软键盘输入法专业:信息工程班级:071131姓名:花彬彬指导老师:姜林1毕业设计任务书目的、意义:任务、要求:设计成果:回顾:信号与槽的定义,两者的区别与联系QT中正则表达式中常用的表达式熟悉QT中对容器的操作方法信号与槽信号:当某个信号对其客户或所有者发生的内部状态发生改变,信号被一个对象发射。只有定义过这个信号的类及其派生类能够发射这个信号槽:当与其关联的信号被发射时,这个槽就会被调用。槽可以有参数,但槽的参数不能有缺省值
关联:信号和槽是一种高级接口,应用于对象之间的通信.通过调用QObject对象的connect函数来将某个对象的信号与另外一个对象的槽函数相关联,这样当发射者发射信号时,接收者的槽函数将被调用boolQObject::connect(constQObject*sender,constchar*signal, constQObject*receiver,constchar*member)正则表达式正则表达式(regularexpression):就是用一个“字符串”来描述一个特征,然后去验证另一个“字符串”是否符合这个特征
常见的正则表达式:表达式
作用\可匹配\\代表”\”本身\S包括空格、制表符、换页符等空白字符的其中任意一个[^]
能够匹配其中字符之外的任意一个字符{m,n}表达式至少重复M次,至多重复N次()取匹配结果的时候,括号中匹配到的内容可以被单独得到关联容器QMap定义:容器中存储的一般是二元组,而不是单个的对象,一般描述为<key,value>,即键值对用途:是一种以升序保存键-值对的数据结构,利于查找和插入及顺序迭代主要方法:软键盘输入法设计与实现实现功能软键盘窗口的设计输入法的设计软键盘实现功能在用户双击通讯录中的LineEdit时:
connect(nameLine,SIGNAL(selectionChanged()),this,SLOT(display_keyboard()));软键盘收到LineEdit发送的信号时会弹出软键盘窗口,即在输入法窗口中我们自定义的这个类GcxInputMethod会处理按键的消息(仅支持软键盘),根据正则表达式的规则从资源文件查找对应的中文并最终显示到通讯录的LineEdit:
connect(keyboard,SIGNAL(sendValue(constQString&)),nameLine,SLOT(setText(constQString&)));通讯录就是通过用户编辑的内容实现查找、增、删等操作。软键盘的设计输入法的窗口由拼音输入框(QLineEdit类)中英文切换、数字按键、汉字显示和软键盘组成,这些由QPushButton构成美观的输入法窗口输入法设计输入法的主要设计思想可以分为以下四步:
按键匹配
获取
显示根据槽的链接响应用户按键动作根据资源文件如何匹配、查找如何获取对应的汉字查找到的汉字如何显示
匹配、查找软键盘中字母键、字符和数字键都与拼音输入QLineEdit建立信号和槽的连接,即每当按下一个字母键的时候马上就会去资源文件进行查找与QLineEdit匹配的字,但该如何匹配?
regExp.setPattern(QString("([^a-z\\s]{2,8})(%1)(\\s)").arg(py));
ret=regExp.indexIn(QString(data.data()),0,QRegExp::CaretAtZero);
这句主要采用的就是正则表达式来匹配查找我们所需的汉字了,在资源文件里,存储的资源是以这种(汉字****拼音)存放的。根据匹配规则我们最后就通过判断ret的值来确定有没有找到对应的汉字了!
获取这里需要解决的问题如何获取对应的中文汉字。前面一步已经匹配找到对应的汉字,但资源文件以下面格式显示:
汉字(最多四个)py我们只需要前半部分。前面在匹配的时候我们是以
QString(“([^a-z\\s]{2,8})(%1)(\\s)”),这里就又得采用正则中一个方法cap():regExp.cap(1).toAscii().data(),这就是把第一个括号的([^a-z\\s]{2,8})这部分提取再通过转换就获取我们所需要的中文汉字了。附:cap(1)取的是第一个括号里的内容cap(2)取的是第二个括号里的内容cap(0)取的是整个匹配的字符串的内容显示找到匹配的汉字就剩下最后一步如何显示了。这里我们一个利用一个文件来保存匹配的汉字,一个文件用于存匹配的拼音
out.open(QIODevice::ReadWrite|QIODevice::Truncate);out_e.open(QIODevice::ReadWrite|QIODevice::Truncate);
流程图运行效果简单应用—备忘录为了更好体现人机交互界面的简洁方便性,这里实现一个简单软键盘的应用---备忘录。
1.首先搭建软键盘与备忘录中对话框之间的关系
connect(nameLine,SIGNAL(selectionChanged()),this,SLOT(display_keyboard()));connect(keyboard,SIGNAL(sendValue(constQString&)),\nameLine,SLOT(setText(constQString&)));
当用户双击QLineEdit的时候会将软键盘显示出来,这时焦点窗口给了软键盘,当用户点击汉字按钮或数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度5G通信网络设备供应与维护合同3篇
- 2025年度公路工程建设项目移交合同4篇
- 2025年度储藏室智能化改造项目合同书4篇
- 二零二五厂区食堂承包合同:年度餐饮创新与升级方案3篇
- 二零二五年度充电桩充电设备研发与知识产权保护合同4篇
- 2025版影视摄影摄像安全责任保险合同3篇
- 二零二四年度员工期望跟踪与职业发展辅导服务合同3篇
- 2024年苹果供应链管理与合作伙伴合作协议3篇
- 2025年度木材产品深加工项目合作协议书4篇
- 2025版双方行政行为管理与监督合同3篇
- 2024-2025学年人教版数学六年级上册 期末综合试卷(含答案)
- 收养能力评分表
- 山东省桓台第一中学2024-2025学年高一上学期期中考试物理试卷(拓展部)(无答案)
- 中华人民共和国保守国家秘密法实施条例培训课件
- 管道坡口技术培训
- 2024年全国统一高考英语试卷(新课标Ⅰ卷)含答案
- 2024年认证行业法律法规及认证基础知识 CCAA年度确认 试题与答案
- 皮肤储存新技术及临床应用
- 外研版七年级英语上册《阅读理解》专项练习题(含答案)
- 2024年辽宁石化职业技术学院单招职业适应性测试题库必考题
- 上海市复旦大学附中2024届高考冲刺模拟数学试题含解析
评论
0/150
提交评论