Overview

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

Deployment

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

Item

Desktop install path

Boot2Qt install path

qtvirtualkeyboardplugin

$$[QT_INSTALL_PLUGINS]/platforminputcontexts

/system/plugins/platforminputcontexts

qtvirtualkeyboardextensionplugin

$$[QT_INSTALL_PLUGINS]/virtualkeyboard

/system/plugins/virtualkeyboard

qtvirtualkeyboardplugin QML files

$$[QT_INSTALL_QML]/QtQuick/VirtualKeyboard

/system/qml/QtQuick/VirtualKeyboard

qtvirtualkeyboardstylesplugin

$$[QT_INSTALL_QML]/QtQuick/VirtualKeyboard/Styles

/system/qml/QtQuick/VirtualKeyboard/Styles

Integration Method

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

  • Desktop: requires no changes to existing applications. The virtual keyboard 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.

  • Application: the virtual keyboard is embedded within the Qt application itself by instantiating an InputPanel item in QML.

    This method is mandatory in environments where there is no support for multiple top-level windows (such as embedded devices), but can be used in desktop applications too.

    This method can also be used by Qt Wayland compositors in order to provide a server-side virtual keyboard. See the section below for details.

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 using the QT_VIRTUALKEYBOARD_DESKTOP_DISABLE environment variable, or by adding CONFIG+=disable-desktop to the qmake command line.

Using Qt Virtual Keyboard with Qt Wayland

This section explains how to use Qt Virtual Keyboard to interact with the Qt Widgets Line Edits example using the Pure QML example as a compositor.

We will be using Ubuntu 18.04 to run the example, using the X11 as the windowing system. The example compositor (pure-qml) will open as a window within an X11 session.

  1. Start the compositor:

     
    Sélectionnez
    QT_XCB_GL_INTEGRATION=xcb_egl QT_WAYLAND_CLIENT_BUFFER_INTEGRATION=xcomposite-egl QT_IM_MODULE=qtvirtualkeyboard ./pure-qml -platform xcb
  2. Before running the client application, ensure that QT_IM_MODULE is unset:

     
    Sélectionnez
    unset QT_IM_MODULE
  3. Start the Line Edits example as the client:

     
    Sélectionnez
    ./lineedits -platform wayland
  4. Click on a line edit and Qt Virtual Keyboard's input panel will open.

If issues are encountered, the following environment variables can be set when running the compositor to get debug output that can help diagnose the issue:

 
Sélectionnez
WAYLAND_DEBUG=1
QT_LOGGING_RULES="qt.virtualkeyboard=true;qt.qpa.wayland*=true"

Loading the Plugin

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

 
Sélectionnez