Qt输入法(支持中文拼音输入、英文输入、数字输入、常用符号输入、手写输入、实体键盘同步)

1 概述

有用过Qt虚拟键盘的同志都知道,Qt的虚拟键盘确实很强大,特别是Qt5自带的的虚拟键盘,支持多国语言输入,拼音自然不在话下,而且采用界面是采用qml来做的,美观、大方,但是也存在很多鸡肋的地方(商业版的Qt可能不存在,会更完善)。

  1. Qt自带的虚拟键盘支持手写输入,但是只有myscript,t9write,lipi-toolkit三种库,myscript,t9write很强大,支持多国语言手写输入,但是收费,要在Qt收费版中才能体验到;lipi-toolkit免费,Qt社区版已包含,但是只支持英文手写输入。
  2. Qt自带的虚拟键盘不支持实体键盘同步输入。

介于这种情况呢,我们可以借助第三方手写支持来实现Qt的手写输入功能。

2 开发环境

  1. Windows操作系统
  2. Qt5.12.5
  3. Visual Studio 2019

3 主要功能

  1. 中文拼音输入
  2. 英文输入
  3. 数字输入
  4. 常用符号输入
  5. 手写输入
  6. 实体键盘同步

4 使用效果

4.1 拼音输入

实体键盘同步功能主要体现在:可点击虚拟键盘按钮输入内容,电脑接有实体键盘的话也可实体键盘上进行输入,输入法都是支持的。
拼音输入
输入结果

4.2 手写输入

手写输入和其他输入法类似,有候选词,点击候选条目即可输入内容。
手写输入效果
输入结果

5 源码

这是一个虚拟键盘插件,仓库包含使用示例,下载地址:点这里

6 使用

6.1 输入法使用

6.1.1 下载源码,编译

主工程使用Qt打开并编译;handinput插件使用Visual Studio打开编译,并将编译生成的动态库拷贝到Qt生成的程序testdemo所在目录。

6.1.2 安装微软手写支持库

网上搜索微软官方手写支持库_Getintopc.com_Tablet_PC_Software_Development_Kit_1.7.exe,找不到的话可以参考我的代码仓库中的备份Tablet_PC_SDK_1.7

6.1.3 使用示例

参照例程testdemo

#include "widget.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    qputenv("QT_IM_MODULE", QByteArray("cqdlc"));

    QApplication a(argc, argv);
    Widget w;
    w.show();
    return a.exec();
}

6.2 手写输入模块接口

手写输入模块是VC扩展库,在handinput工程里导出接口

/
//                                          
// export API
//
//
/
extern "C" __declspec(dllexport) bool Init(long inputWinId)
{
	return CAdvRecoApp::Init(inputWinId);
}

extern "C" __declspec(dllexport) void SetBstrResultsCB(BstrResults pBstrResults)
{
	CAdvRecoApp::SetBstrResultsCB(pBstrResults);

	return;
}

extern "C" __declspec(dllexport) void Clear()
{
	CAdvRecoApp::Clear();

	return;
}
评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值