QT虛擬鍵盤(qt virtual keyboard) 中文輸入 嵌入式平台字庫路徑解決

同時也在官方論壇提出問題
[https://forum.qt.io/topic/106393/qtvirtualkeyboard-chinese-word-candidate-list-on-embedded-linux/4]

在自己的ARM開發板上移植LINUX以及QT
官方支持的中文虛擬鍵盤,但沒辦法自動查找,匹配文字EMBEEDDED QT
注音,倉頡,拼音皆如此,
查看原代碼
qtvirtualkeyboard\src\virtualkeyboard\tcinputmethod.cpp

382        if (inputMode == InputEngine::Zhuyin) {`
383            if (d->zhuyinDictionary.isEmpty()) {
384                QString zhuyinDictionary(qEnvironmentVariable("QT_VIRTUALKEYBOARD_ZHUYIN_DICTIONARY"));
385                if (zhuyinDictionary.isEmpty())
386                    zhuyinDictionary = QLibraryInfo::location(QLibraryInfo::DataPath) + "/qtvirtualkeyboard/tcime/dict_zhuyin.dat";
387                d->zhuyinDictionary.load(zhuyinDictionary);
388            }
389            d->wordDictionary = &d->zhuyinDictionary;
390        }

用了QLibraryInfo::location,是在組建QT時,所使用的-prefix選項,但本該使用相對於開發板上QT庫的位置來讀取這個路徑。
實際上卻在編譯時,指定成了prifix的絕對路徑

所以程序本該讀取 $QT_BASE/prefix/qtvirtualkeyboard/tcime/dict_zhuyin.dat
卻變成讀取/prefix/qtvirtualkeyboard/tcime/dict_zhuyin.dat
可以複製一份檔案到絕對路徑,或是修改源碼

zhuyinDictionary = "你的QT_ROOT資料夾"+ "/qtvirtualkeyboard/tcime/dict_zhuyin.dat";
387                

我有事先設置QT_VIRTUALKEYBOARD_ZHUYIN_DICTIONARY變量,但沒有作用。

此不算BUG的BUG已經回報,看官方怎麼使吧。

QT對cross compile的支持確實是沒有說得很清楚。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值