qtvirtualkeyboard 文档:

https://doc.qt.io/archives/qt-5.10/qtvirtualkeyboard-index.html

qtvirtualkeyboard开发指导:

https://doc.qt.io/qt-5/qtvirtualkeyboard-build.html#

https://doc.qt.io/qt-5/qtvirtualkeyboard-deployment-guide.html#

qtvirtualkeyboard 工程源码和例程:

https://code.qt.io/cgit/qt/qtvirtualkeyboard.git/

https://doc.qt.io/qt-5/qtvirtualkeyboard-basic-example.html#

首先, 在bsp包中使能qtvirutalkeyboard的简体中文输入法, 修改build/conf/local.conf, 增加以下内容

PACKAGECONFIG_append_pn-qtvirtualkeyboard = " lang-zh_CN"

"lang-zh_CN"设置根据https://doc.qt.io/qt-5/qtvirtualkeyboard-build.html中的表格得到。

参考以下文档给qt程序添加中文字体支持:

为QT程序添加字体 / Add font for QT Application

为qt程序导入键盘插件:

导入QT_IM_MODULE环境变量

export QT_IM_MODULE=qtvirtualkeyboard

或者在qt程序的main()函数中添加以下源码

qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard"));

在文本编辑GUI中创建InputPanel:

在qt程序中, 创建了文本编辑控件后, 运行该qt程序时,点击文本编辑控件时, 并不会自动弹出键盘. 

InputPanel是虚拟键盘的UI.

创建文本编辑控件之后, 要使用qt的虚拟键盘来输入文本时,  就需要在该GUI的框架中再创建InputPanel的控件.

键盘的大小会自动根据可用宽度来计算, 并且键盘的长宽比是固定的.

import QtQuick 2.0
import QtQuick.VirtualKeyboard 2.1

Item {
    id: root
    Item {
        id: appContainer
        anchors.left: parent.left
        anchors.top: parent.top
        anchors.right: parent.right
        anchors.bottom: inputPanel.top
        ...
    }
    InputPanel {
        id: inputPanel
        y: Qt.inputMethod.visible ? parent.height - inputPanel.height : parent.height
        anchors.left: parent.left
        anchors.right: parent.right
    }
}

QtQuick工程经过以上修改后, qt键盘就会增加拼音输入法.

  • No labels