aboutsummaryrefslogtreecommitdiffstats
path: root/src/virtualkeyboard/doc/src/deployment-guide.qdoc
blob: fc66b1aa296a72acfe47ae055d34174ecc76db30 (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
/****************************************************************************
**
** Copyright (C) 2013 Digia Plc
** All rights reserved.
** For any questions to Digia, please use contact form at http://qt.digia.com
**
** This file is part of the Qt Virtual Keyboard add-on for Qt Enterprise.
**
** Licensees holding valid Qt Enterprise licenses may use this file in
** accordance with the Qt Enterprise License Agreement provided with the
** Software or, alternatively, in accordance with the terms contained in
** a written agreement between you and Digia.
**
** If you have questions regarding the use of this file, please use
** contact form at http://qt.digia.com
**
****************************************************************************/

/*!

\page 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 Qt Virtual Keyboard plugin must be properly deployed before it can be used.
The easiest approach to deployment is to add a deployment step
in Qt Creator that executes the \c {make install} command.

\c {make install} deploys the files 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/Enterprise/VirtualKeyboard
    \li \c /system/qml/QtQuick/Enterprise/VirtualKeyboard
\row
    \li qtvirtualkeyboardstylesplugin
    \li \c $$[QT_INSTALL_QML]/QtQuick/Enterprise/VirtualKeyboard/Styles
    \li \c /system/qml/QtQuick/Enterprise/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.
    \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.
\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.
This happens by adding the \c CONFIG+=disable-xcb option 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.Enterprise.VirtualKeyboard 1.2

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 ? appContainer.height - inputPanel.height : appContainer.height
        anchors.left: parent.left
        anchors.right: parent.right
        anchors.bottom: parent.bottom
    }
}
\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.

If the application contains Flickable elements, they will be automatically
scrolled to the focused element.

*/