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

声明:部分有参考csdn其他牛人的资料,现将代码共享,共同学习,来源于社会,回馈社会。

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

Qt自带的虚拟键盘支持手写输入,但是只有myscript,t9write,lipi-toolkit三种库,myscript,t9write很强大,支持多国语言手写输入,但是收费,要在Qt收费版中才能体验到;lipi-toolkit免费,Qt社区版已包含,但是只支持英文手写输入。
Qt自带的虚拟键盘不支持实体键盘同步输入。
介于这种情况呢,我们可以借助第三方手写支持来实现Qt的手写输入功能。

二、开发环境
Windows操作系统
Qt5.12.5
Visual Studio 2019
三、主要功能
中文拼音输入
英文输入
数字输入
常用符号输入
手写输入
实体键盘同步
四、使用效果
1. 拼音输入效果

2. 手写输入效果

五、源码
下载地址:https://gitee.com/wangzhenglin/inputmethod

六、使用
1、输入法使用
(1) 下载源码,编译
(2) 安装微软手写支持库_Getintopc.com_Tablet_PC_Software_Development_Kit_1.7.exe
(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();
}
1
2
3
4
5
6
7
8
9
10
11
12
13
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;
}
————————————————
版权声明:本文为CSDN博主「川穹冬菱草」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/w1820020635/article/details/103733342

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章