此文档编制描述如何部署和使用 Qt Virtual Keyboard 插件与 Qt 5 应用程序。
各种 Qt Virtual Keyboard 插件和文件被部署在以下位置:
Item | 桌面安装路径 | Boot2Qt 安装路径 |
---|---|---|
qtvirtualkeyboardplugin |
$$[QT_INSTALL_PLUGINS]/platforminputcontexts
|
/system/plugins/platforminputcontexts
|
qtvirtualkeyboardplugin QML files |
$$[QT_INSTALL_QML]/QtQuick/VirtualKeyboard
|
/system/qml/QtQuick/VirtualKeyboard
|
qtvirtualkeyboardstylesplugin |
$$[QT_INSTALL_QML]/QtQuick/VirtualKeyboard/Styles
|
/system/qml/QtQuick/VirtualKeyboard/Styles
|
Qt Virtual Keyboard currently supports two alternative integration methods for using the plugin:
桌面
: Qt Virtual Keyboard is integrated with Qt 5 and requires no changes to existing applications. The Qt Virtual Keyboard input method is available to all of the Qt 5 applications in the system.
In this integration method, the keyboard is shown in a dedicated top-level window.
应用程序
: Qt Virtual Keyboard is integrated with Qt 5, but requires changes to particular applications using Qt Virtual Keyboard. This method is mandatory in a
Boot2Qt
environment, but can be used in desktop applications too.
In this integration method, the keyboard is shown in the same Qt Quick scene as the application.
The integration method is automatically selected by the project files. However, in desktop environments, it is possible to override the desktop integration method and use the application integration method instead, by adding
CONFIG+=disable-desktop
到
qmake
命令行。
注意: The desktop integration method is not currently available in Boot2Qt environments.
In both integration methods, the application must use the
QT_IM_MODULE
environment variable to load the plugin. For example:
$ QT_IM_MODULE=qtvirtualkeyboard myapp
or in the main() function:
qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard"));
In the desktop integration method, this step is all that is required to use Qt Virtual Keyboard. In the application integration method, the application is required to create an instance of InputPanel as explained in the following chapter.
The following example shows how to create an InputPanel and how to divide the screen area with the application container.
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 } }
The input panel must be a sibling element next to the application container. It is important not to put the input panel within the application container, as it would then overlap with the contents of the application. Also, the input panel height will be automatically updated according to the available width; the aspect ratio of the input panel is constant.
There are several environment variables defined by the module that are listed below:
变量 | 目的 |
---|---|
QT_VIRTUALKEYBOARD_HUNSPELL_DATA_PATH |
Overrides the location of the Hunspell data files.
The default location depends on the value of
见 Hunspell Integration 了解更多信息。 |
QT_VIRTUALKEYBOARD_PINYIN_DICTIONARY |
Overrides the location of the Pinyin dictionary.
The default location depends on the value of
|
QT_VIRTUALKEYBOARD_CANGJIE_DICTIONARY |
Overrides the location of the Cangjie dictionary.
The default location depends on the value of
|
QT_VIRTUALKEYBOARD_ZHUYIN_DICTIONARY |
Overrides the location of the Zhuyin dictionary.
The default location depends on the value of
|
QT_VIRTUALKEYBOARD_PHRASE_DICTIONARY |
Overrides the location of the phrase dictionary.
The default location depends on the value of
|
QT_VIRTUALKEYBOARD_STYLE |
Specifies the location of the style to use with the virtual keyboard. This can also be specified in QML by setting VirtualKeyboardSettings::styleName , or at build time by using the qmake configuration options . |
QT_VIRTUALKEYBOARD_LAYOUT_PATH | Specifies the location of the layouts to be used with the virtual keyboard. |
LIPI_ROOT |
Specifies the location of lipi-toolkit.
The default location depends on the value of
|
LIPI_LIB |
Specifies the location of lipi-toolkit plugins.
The default location depends on
|