aboutsummaryrefslogtreecommitdiffstats
path: root/src/virtualkeyboard/doc/src/deployment-guide.qdoc
blob: 431dcf100f61903ceebec2a93d38d634ae875283 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
/****************************************************************************
**
** Copyright (C) 2016 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Virtual Keyboard module of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:GPL$
** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and The Qt Company. For licensing terms
** and conditions see https://www.qt.io/terms-conditions. For further
** information use the contact form at https://www.qt.io/contact-us.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 3 or (at your option) any later version
** approved by the KDE Free Qt Foundation. The licenses are as published by
** the Free Software Foundation and appearing in the file LICENSE.GPL3
** included in the packaging of this file. Please review the following
** information to ensure the GNU General Public License requirements will
** be met: https://www.gnu.org/licenses/gpl-3.0.html.
**
** $QT_END_LICENSE$
**
****************************************************************************/

/*!

\page qtvirtualkeyboard-deployment-guide.html
\contentspage {Deployment Guide} {Contents}

\title Deployment Guide

\section1 Overview

This document describes how to deploy and use the Qt Virtual Keyboard plugin
with Qt 5 applications.

\section1 Deployment

The various Qt Virtual Keyboard plugins and files are deployed in the following
locations:

\table
\header
    \li Item
    \li Desktop install path
    \li Boot2Qt install path
\row
    \li qtvirtualkeyboardplugin
    \li \c $$[QT_INSTALL_PLUGINS]/platforminputcontexts
    \li \c /system/plugins/platforminputcontexts
\row
    \li qtvirtualkeyboardplugin QML files
    \li \c $$[QT_INSTALL_QML]/QtQuick/VirtualKeyboard
    \li \c /system/qml/QtQuick/VirtualKeyboard
\row
    \li qtvirtualkeyboardstylesplugin
    \li \c $$[QT_INSTALL_QML]/QtQuick/VirtualKeyboard/Styles
    \li \c /system/qml/QtQuick/VirtualKeyboard/Styles
\endtable

\section1 Integration Method

Qt Virtual Keyboard currently supports two alternative integration methods
for using the plugin:

\list
    \li \c Desktop: 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.
    \li \c Application: 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.
\endlist

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 \c CONFIG+=disable-desktop to the \c qmake command line.

\note The desktop integration method is not currently available in Boot2Qt
environments.

\section1 Loading the Plugin

In both integration methods, the application must use the \c QT_IM_MODULE
environment variable to load the plugin. For example:

\code
$ QT_IM_MODULE=qtvirtualkeyboard myapp
\endcode

or in the main() function:

\code
qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard"));
\endcode

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.

\section1 Creating InputPanel

The following example shows how to create an InputPanel and how to
divide the screen area with the application container.

\code
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
    }
}
\endcode

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.

\section1 Environment Variables

There are several environment variables defined by the module that are listed below:

\table
    \header
        \li Variable
        \li Purpose
    \row
        \li QT_VIRTUALKEYBOARD_HUNSPELL_DATA_PATH
        \li Overrides the location of the Hunspell data files.

            The default location depends on the value of
            \c {QLibraryInfo::location(QLibraryInfo::DataPath)}.
            For example, for Qt libraries built from source,
            it could be \c {qtbase/qtvirtualkeyboard/hunspell}.

            See \l {Hunspell Integration} for more information.
    \row
        \li QT_VIRTUALKEYBOARD_PINYIN_DICTIONARY
        \li Overrides the location of the Pinyin dictionary.

            The default location depends on the value of
            \c {QLibraryInfo::location(QLibraryInfo::DataPath)}.
            For example, for Qt libraries built from source,
            it could be \c {qtbase/qtvirtualkeyboard/pinyin/dict_pinyin.dat}.
    \row
        \li QT_VIRTUALKEYBOARD_CANGJIE_DICTIONARY
        \li Overrides the location of the Cangjie dictionary.

            The default location depends on the value of
            \c {QLibraryInfo::location(QLibraryInfo::DataPath)}.
            For example, for Qt libraries built from source,
            it could be \c {qtbase/qtvirtualkeyboard/tcime/dict_cangjie.dat}.
    \row
        \li QT_VIRTUALKEYBOARD_ZHUYIN_DICTIONARY
        \li Overrides the location of the Zhuyin dictionary.

            The default location depends on the value of
            \c {QLibraryInfo::location(QLibraryInfo::DataPath)}.
            For example, for Qt libraries built from source,
            it could be \c {qtbase/qtvirtualkeyboard/tcime/dict_zhuyin.dat}.
    \row
        \li QT_VIRTUALKEYBOARD_PHRASE_DICTIONARY
        \li Overrides the location of the phrase dictionary.

            The default location depends on the value of
            \c {QLibraryInfo::location(QLibraryInfo::DataPath)}.
            For example, for Qt libraries built from source,
            it could be \c {qtbase/qtvirtualkeyboard/tcime/dict_phrases.dat}.
    \row
        \li QT_VIRTUALKEYBOARD_STYLE
        \li Specifies the location of the style to use with the virtual keyboard.

            This can also be specified in QML by setting \l {VirtualKeyboardSettings::styleName},
            or at build time by using the \l {Advanced Configuration Options}{qmake configuration options}.
    \row
        \li QT_VIRTUALKEYBOARD_LAYOUT_PATH
        \li Specifies the location of the layouts to be used with the virtual keyboard.
    \row
        \li LIPI_ROOT
        \li Specifies the location of lipi-toolkit.

            The default location depends on the value of
            \c {QLibraryInfo::location(QLibraryInfo::DataPath)}.
            For example, for Qt libraries built from source,
            it could be \c {qtbase/qtvirtualkeyboard/lipi_toolkit}.
    \row
        \li LIPI_LIB
        \li Specifies the location of lipi-toolkit plugins.

            The default location depends on \c LIPI_ROOT:
            \list
            \li \c {LIPI_ROOT + "/lib"} if \c LIPI_ROOT is set.
            \li \c {QLibraryInfo::location(QLibraryInfo::PluginsPath) + "/lipi_toolkit"} if \c LIPI_ROOT is not set.
            \endlist
\endtable

*/