Qt Virtual Keyboard

The Qt Virtual Keyboard project provides an input framework and reference keyboard frontend for Qt 5 on Linux Desktop/X11, Windows Desktop, and Boot2Qt targets.

The input framework makes it easy to write custom input methods or to integrate 3rd party input engines. The input methods can be implemented in C++ or QML.

Features

Key features of the Qt Virtual Keyboard include:

  • Customizable keyboard layouts and styles with dynamic switching.
  • Predictive text input with word selection.
  • Character preview and alternative character view.
  • Automatic capitalization and space insertion.
  • Scalability to different resolutions.
  • Support for different character sets (Latin, Simplified/Traditional Chinese, Hindi, Japanese, Arabic, Korean, and others).
  • Support for most common input languages, with possibility to easily extend the language support.
  • Left-to-right and right-to-left input.
  • Hardware key support for 2-way and 5-way navigation.
  • Handwriting support, with gestures for fullscreen input.
  • Audio feedback.
  • Cross-platform functionality.

Supported Languages

The Virtual Keyboard supports the following languages:

  • Arabic
  • Danish
  • English
  • Finnish
  • French
  • German
  • Hindi
  • Italian
  • Japanese
  • Korean
  • Norwegian
  • Persian/Farsi
  • Polish
  • Portugese
  • Russian
  • Simplified Chinese
  • Traditional Chinese
  • Spanish
  • Swedish

To add support for an additional language, see Adding New Keyboard Layouts.

Guides

QML Types

BackspaceKey

Backspace key for keyboard layouts

BaseKey

Common parent for all key types

ChangeLanguageKey

Change language key for keyboard layouts

EnterKey

Enter key for keyboard layouts

FillerKey

Filler key for keyboard layouts

HandwritingInputPanel

Provides a handwriting panel add-on for the virtual keyboard UI

HandwritingModeKey

Hand writing mode key for keyboard layouts

HideKeyboardKey

Hide keyboard key for keyboard layouts

InputPanel

Provides the virtual keyboard UI

Key

Regular character key for keyboard layouts

KeyboardColumn

Keyboard column for keyboard layouts

KeyboardLayout

Keyboard layout

KeyboardLayoutLoader

Allows dynamic loading of keyboard layout

KeyboardRow

Keyboard row for keyboard layouts

ModeKey

Generic mode key for keyboard layouts

NumberKey

Specialized number key for keyboard layouts

ShiftKey

Shift key for keyboard layouts

SpaceKey

Space key for keyboard layouts

SymbolModeKey

Symbol mode key for keyboard layouts

TraceInputArea

A specialized MultiPointTouchArea for collecting touch input data

TraceInputKey

A specialized key for collecting touch input data

EnterKeyAction

Provides attached properties for customizing the enter key

InputContext

Provides access to an input context

InputEngine

Maps the user input to the input methods

InputMethod

Base type for creating input method in QML

SelectionListModel

Provides a data model for the selection lists

ShiftHandler

Manages the shift state

Trace

Data model for touch input data

Styling components:

KeyIcon

Key icon with adjustable color

KeyPanel

A base type of the styled keys

KeyboardStyle

Provides a styling interface for the Virtual Keyboard

SelectionListItem

A base type for selection list item delegates

TraceCanvas

A specialized Canvas type for rendering Trace objects

TraceInputKeyPanel

A base type of the trace input key

Settings components:

VirtualKeyboardSettings

Provides settings for virtual keyboard

Examples