一种基于Qt5的虚拟键盘输入方法技术

技术编号:27270892 阅读:15 留言:0更新日期:2021-02-06 11:35
本发明专利技术涉及一种基于Qt5的虚拟键盘输入方法,其技术特点是:通过配置输入法插件MyInputPlatformInputContextPlugin;根据插件设置相关的输入法界面;设计虚拟键盘响应的流程。本发明专利技术能够在Qt GUI应用程序上自动感应当前光标是否处于输入状态,并且具有跨平台特性,同时本发明专利技术无需集成到目标软件中,完全解耦,便于移植。目前,多点触控屏已成主流屏幕,本发明专利技术能增强人机交互友好性,更加优化满足软件的应用需求。件的应用需求。件的应用需求。

【技术实现步骤摘要】
一种基于Qt5的虚拟键盘输入方法


[0001]本专利技术属于人机交互
,尤其是一种基于Qt5的虚拟键盘输入方法。

技术介绍

[0002]GUI的广泛应用是当今计算机发展的重大成就之一,它极大地方便了非专业用户的使用。人们从此不再需要死记硬背大量的命令,取而代之的是可以通过窗口、菜单、按键等方式来方便地进行操作。而嵌入式GUI具有下面几个方面的基本要求:轻型、占用资源少、高性能、高可靠性、便于移植、可配置等特点。
[0003]在嵌入式GUI应用软件或不存在物理按键却存在触摸屏的GUI软件中经常需要不通过物理键盘输入,虽然微软提供了一个虚拟虚拟键盘,但这个虚拟键盘不能定制界面不能自动感应当前光标是否处于输入状态,而多数Linux发行版未提供虚拟键盘。
[0004]而且,在一些嵌入式设备或桌面版设备中,没有物理按键,所有的输入都是通过触摸屏和虚拟键盘输入。此时,需要做到只有处于输入状态时才弹出虚拟键盘,否则如果虚拟键盘一直在界面上,既不美观也妨碍其他程序的正常使用。

技术实现思路

[0005]本专利技术的目的在于克服现有技术的不足,提出一种基于Qt5的虚拟键盘输入方法,能够实现不同密钥生成场景下的密钥协商方案评估。
[0006]本专利技术解决其技术问题是采取以下技术方案实现的:
[0007]一种基于Qt5的虚拟键盘输入方法,包括以下步骤:
[0008]步骤1、配置输入法插件;
[0009]步骤2、根据插件设置输入法界面;
[0010]步骤3、设计虚拟键盘响应的流程。
[0011]而且,所述步骤1的包括以下步骤:
[0012]步骤1.1、QT根据环境变量QT_IM_MODULE加载输入法插件 MyInputPlatformInputContextPlugin;
[0013]步骤1.2、调用输入法插件MyInputPlatformInputContextPlugin的create函数初始化 MyInputPlatformInputContext类对象实现showInputPanel和hideInputPanel函数;
[0014]步骤1.3、MyInputPlatformInputContext的构造函数初始化QDBusInterface时,注册服务。
[0015]而且,所述步骤1.1中输入法插件MyInputPlatformInputContextPlugin继承于 QPlatformInputContextPlugin,其头文件通过Q_PLUGIN_METADATA声明。
[0016]而且,所述步骤1.3中注册服务传入的第一个参数“com.virt.input”为服务名,第二个“/input/myInput”为服务下的路径,第三个“local.keyboard.Dialog”为接口的名称。
[0017]而且,所述步骤2包括以下步骤:
[0018]步骤2.1、调用InputService在dbus上注册一个服务和对象;
[0019]步骤2.2、通过QDBusConnection::sessionBus()获得QDBusConnection的对象conn;
[0020]步骤2.3、通过conn对象的registerService(“com.virt.input”)函数注册服务;
[0021]步骤2.4、通过conn的registerObject函数注册Board对象;
[0022]步骤2.5、调用initWidgets函数对虚拟键盘界面进行初始化和布局。
[0023]而且,所述步骤2.5中对界面进行初始化和布局包括:输入法插件 MyInputPlatformInputContextPlugin调用函数showInputPanel,进行showKeyboard弹出键盘;输入法插件MyInputPlatformInputContextPlugin调用函数hideInputPanel,进行 hideKeyboard隐藏键盘;输入法界面导出函数pressKey,把按键事件传至输入法界面,输入法界面点击确定按钮后,发出一个commit信号,输入法插件响应此信号,把字符串发送给焦点控件,焦点控件显示字符的值。
[0024]而且,所述步骤3包括以下步骤:
[0025]步骤3.1、判断是否执行export QT_IM_MODULE=myInput,若执行则进行步骤3.2,否则结束;
[0026]步骤3.2、调用输入法插件MyInputPlatformInputContextPlugin的create函数;
[0027]步骤3.3、初始化MyInputPlatformInputContext,注册服务com.virt.input,注册接口名称,关联commit信号和keyboardCommit槽函数;
[0028]步骤3.4、判断是否执行输入法界面keyboard,若执行则进行步骤3.5,否则结束;
[0029]步骤3.5、调用InputService类注册服务和Board对象;
[0030]步骤3.6、判断焦点是否在Qt输入框,若焦点在Qt输入框,则进行步骤3.7,否则重复步骤3.6;
[0031]步骤3.7、弹出输入法界面;
[0032]步骤3.8、获取用户输入的字符,并发送commit信号;
[0033]步骤3.9、输入法插件MyInputPlatformInputContextPlugin调用keyboardCommit,把提交的字符发送给焦点控件并结束。
[0034]本专利技术的优点和积极效果是:
[0035]本专利技术通过配置输入法插件;根据插件设置输入法界面;设计虚拟键盘响应的流程,能够在Qt GUI应用程序上自动感应当前光标是否处于输入状态,并且具有跨平台特性,同时无需集成到目标软件中,完全解耦,便于移植。由于多点触控屏已成主流屏幕,本专利技术能增强人机交互友好性,更加优化满足软件的应用需求。
附图说明
[0036]图1是本专利技术输入法插件的UML类图;
[0037]图2是本专利技术输入法界面UML类图;
[0038]图3是本专利技术设计虚拟键盘响应的流程图;
[0039]图4是本专利技术虚拟键盘图。
具体实施方式
[0040]以下结合附图对本专利技术做进一步详述。
[0041]一种基于Qt5的虚拟键盘输入方法,包括以下步骤:
[0042]步骤1、配置输入法插件。如图1所示,输入法插件MyInputPlatformInputContextPlugin 继承于QPlatformInputContextPlugin,需要实现create方法,MyInputPlatformInputContextPlugin类的头文件需要通过Q_PLUGIN_METADATA声明:
[0043]Q_PLUGIN_METADATA(IID QPlatformInputCon本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Qt5的虚拟键盘输入方法,其特征在于:包括以下步骤:步骤1、配置输入法插件;步骤2、根据插件设置输入法界面;步骤3、设计虚拟键盘响应的流程。2.根据权利要求1所述的一种基于Qt5的虚拟键盘输入方法,其特征在于:所述步骤1的包括以下步骤:步骤1.1、QT根据环境变量QT_IM_MODULE加载输入法插件MyInputPlatformInputContextPlugin;步骤1.2、调用输入法插件MyInputPlatformInputContextPlugin的create函数初始化MyInputPlatformInputContext类对象实现showInputPanel和hideInputPanel函数;步骤1.3、MyInputPlatformInputContext的构造函数初始化QDBusInterface时,注册服务。3.根据权利要求1所述的一种基于Qt5的虚拟键盘输入方法,其特征在于:所述步骤1.1中输入法插件MyInputPlatformInputContextPlugin继承于QPlatformInputContextPlugin,其头文件通过Q_PLUGIN_METADATA声明。4.根据权利要求1所述的一种基于Qt5的虚拟键盘输入方法,其特征在于:所述步骤1.3中注册服务传入的第一个参数“com.virt.input”为服务名,第二个“/input/myInput”为服务下的路径,第三个“local.keyboard.Dialog”为接口的名称。5.根据权利要求1所述的一种基于Qt5的虚拟键盘输入方法,其特征在于:所述步骤2包括以下步骤:步骤2.1、调用InputService在dbus上注册一个服务和对象;步骤2.2、通过QDBusConnection::sessionBus()获得QDBusConnection的对象conn;步骤2.3、通过conn对象的registerService(“com.virt.input”)函数注册服务;步骤2.4、通过conn的regist...

【专利技术属性】
技术研发人员:包汉瑜刘双妹卢冉孙文本
申请(专利权)人:中国船舶重工集团公司第七零七研究所
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1