聲明:部分有參考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