一种多功能软键盘的设计

• 153
风湿油
一种多功能软键盘的设计
垃圾焚烧
中船重工第七一六研究所  陈国华【摘要】随着触屏、语音识别等技术的广泛应用,输入终端正朝着越来越多样化、智能化的方向发展。本文介绍一种运行于Linux操作系统上的多功能软键盘软件,该软件采用Qt图形化的设计与实现的方法,主要包含了字母、拼音、手写、语音等输入方式,界面简洁美观、操作简单,可以应用于Linux操作系统的触摸屏设备。
【关键词】多功能;Qt;软键盘;触摸屏设备
引言
随着电子计算机技术的飞速发展,人们对人机交互的方式也提出了更高的要求。人机交互方式已经不再局限于传统的键盘、鼠标、手写板、语音输入等,人机交互方式将变得越来越多样化[1]。目前,触摸屏技术已广泛应用于各种个人便携式电子产品、公共信息查询设备、电子游戏、通讯设备、自动化办公等,已成为最受欢迎的人机交互方式。软件盘是应用于触摸屏上的重要信息输入工具,它可以代替传统物理键盘,通过点击显示在屏幕上的按键完成字母、数字、符号、汉字等不同内容的输入以及其他操作[2]。JARI-Works操作系统是中船重工第716研究所自主研发的实时嵌入式操作系统,具备强实时内核与高效人机交互跨界融合支撑能力、多核实时任务管理与并行计算支撑能力、可快速安装与部署等特点,特别适合轻量级的人机交互设备。Qt是挪威的Trolltech 公司开发的一款跨平台的基于C++的图形界面开发软件,它提供给应用程序开发者建立艺术级的图形用户界面所需的所有功能[3]。Qt 完全面向对象,很容易进行扩展,并且允许真正的组件编程。本文介绍在JARI-Works操作系统下基于Qt的软件盘的设计和实现方法,该键盘功能全面,界面美观、操作简单,可以实现字母、符号、拼音、手写、语音等多种输入方式,可以应用于基于JARI-Works操作系统的触摸屏设备。
1.Qt的设计方法
Qt拥有一系列窗体,可提供标准的GUI功能。Qt也提供事件模型用来处理鼠标、按键等用户操作[4]。另外,Qt有3中特殊的通信机制:QCOP协议、信号-槽机制和FIFO机制等,其中信号-槽机制是Qt的核心机制。信号和槽是一种高级接口,应用于对象之间的通信,取代了传统的回调函数方式,具有更
好的安全性。当某个信号对其客户或所有者的内部状态发生改变,信号被一个对象发射[5]。只有定于过这个信号的类及其派生类能够发射这个信息。通过调用QObject对象的connect函数来将某个对象的信号与另外一个对象的槽函数相关联,这样当一个信号被发射时,与其相关联的槽将被立刻执行,就像一个正常的函数调用一样。如图1所示,信号和槽之间可以一对一,一对多,多对一,多对多,还可以信号触发信号,
非常灵活易用。集飞行器
自动跟踪
图1 Qt信号与槽的关系图
2.多功能软键盘的设计
多功能软键盘包含了字母、数字、符号、拼音、手写、语音等多种人机交互方式,具有美观、简洁、易用等特点,因此,软键盘的按键设计和布局显得尤为重要。键盘总体布局沿用传统的键盘布局模式,由于键盘兼顾多种输入方法,需要将输入键和功能键区分出来。其中,功能键包括回车键、退格键、空白键、输入法切换键和符号/数字切换键,这5个键作为公共键,每种输入方式都需要配置。输入法切换键采用简单的轮询的方式,每按一次,切换一种输入法。在每种输入法使用过程可以按符号/数字切换键后将进入符号/数字界面,再按一次则返回到原输入法界面。下面将对各种输入方式进行分析:
英文字母输入法:英文字母输入比较简单,主要包括26个英文字母键,通过Caps切换字母大小写。
• 154
拼音输入法:拼音输入法包括输入区和汉字候选区,输入区为26个字母键,候选区在没有任何输入时不可见,当有输入时才显示。拼音输入法具有联想功能,输入若干个拼音首字母,候选区则排列出符合条件的多个词组。可以按移动键进行浏览选择,若按空白键则默认选第一个汉字词组,若按回车键则默认字母直接输入。
按摩脚盆
手写输入法:手写输入法主要包括手写区、文字候选区和一些简单的功能键。手写区用于用户在该区域书写要输入的内容,通过系统识别后在文字候选区显示出来,候选区类似拼音的候选区,用户可以浏览并选择满足要求的内容。另外,在手写输入的过程,用户可以通过回撤键撤除最后一个笔画输入,通过清除键清除当前手写区。手写具有默认选择功能,在用户书写过程停顿一秒中以上,系统将认为书写已经结束,用户再次书写时,系统默认选择候选区的第一个内容作为上次的输入结果。
语音输入法:语音输入法也比较简单,主要包括输入按钮和候选区,用户通过按住输入按钮后进行语音输入,系统在候选区显示用户输入的文字,用户可以选择满足要求的输入内容。
符号/数字输入:用户进行符号/数字输入界面时,可以输入符号和数字,其中符号分为中英文符号,通过中英文切换键进行切换。
下面图2为软键盘英文字母输入法界面,图3为软键盘拼音输入
法界面:
服务器平台
图2 软键盘英文字母输入法界面图3 软键盘拼音输入法界面
3.多功能软键盘的实现
3.1  块的划分与实现
多功能软键盘的主要采用Qt 来编程实现,根据前面对软键盘主要功能特点的分析以及Qt 编程的优势,采用模块化的方法来实现。定义BaseKeyBorad 类为基础类,主要功能包括键盘的基本框架和公共按键的定义,其他模块包括LetterKeyBoard 类、PinyinKeyBoard 类、HandKeyBoard 类、SoundKeyBoard 类、SignKeyBoard 类都继承
BaseKeyBorad 类,除了实现公共按键的功能外,还需要实现自身特有的按键功能。主要功能模块之间的类关系图如下图4
所示。
图4 主要功能模块之间的类关系图
3.2  按键事件的实现
软键盘要实现的接口函数最多的是按键的按下与释放事件,在某个按键被按下或释放的时候发送信号
通知键盘自己被按下或释放。通过重写QPushButton 类为MyButton 类的槽函数void mousePressEvent(QMouseEvent *e)函数和void mouseReleaseEvent(QMouseEvent *e),在mousePressEvent 函数中发送keyClick 信号,在mouseReleaseEvent 函数中发送keyRelease 信号。在每个输入法类中定义该键盘的按键,并将按键的keyClick 信号与输入法类中的KeyPress 槽函数关联起来。当按键被按下的时候就发送key-Click 信号,keyClick 信号触发keyPress 槽函数,在keyPress 函数中通过调用sendEvent 发送正确的键值,从而实现字符输入。3.3  长按事件和默认选择事件的实现
在按键输入的过程中,存在连续输入的情况,当按下某个键时间大于1秒中的时候,将视为有连续输入。通过QTimer 定时器模拟长按事件,当有长按事件时,启动一个0.1秒的定时器,这样每间隔0.1秒将模拟一个按键输入一次,直到该按键被释放,定时器将停止。
在手写输入的过程中,当用户输入停止1秒钟以上将被默认为停止输入,软件将默认将第一个备选项作为输入,在用户再次输入时清除输入区,并选择上次输入的第一个备选项作为用户输入。通过QTimer 定义一个一次性定时器,用户每次手写输入都会关闭之前定时器,触发一个新
定时器,当输入结束时间大于1秒钟以上触发keyPress 的sendEvent 事件。
4.结束语
本文通过一种多功能软键盘软件的设计与实现,并在触摸屏输入终端上进行测试,能够方便、快捷、有效的代替传统的物理键盘,为多功能显控设备提供更加方便、多样化的系统访问与服务。
参考文献
[1]陈晓雷,谢文,邓浩.基于Qt/E的嵌入式Linux中文输入法的设计与实现[J].郑州轻工业学院学报:自然科学版,2009,24(6):6-7.
[2]许立云.智能手机开发平台QT中软键盘的实现及改进[J].现代电子技术,2006,29(2):16-18.
[3]陈周国,王胜银,付国晴,等.基于Linux Qt技术的远程监控GUI 设计[J].通信技术,2009,42(12):185-200.
[4]张斌,罗桂娥.MiniGUI的软键盘快速设计方法[J].计算机工程,2008,34(24):275-317.
[5]李杰,曹宇,朱坚,等.基于嵌入式Linux的矩阵键盘设计与实现[J].现代电子技术,2006,29(24):73-80.

本文发布于:2024-09-21 22:02:33,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/241737.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:输入   信号   键盘   用户   按键   实现   方式   软键盘
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议