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.


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, Hebrew, 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.
  • Supports both Qt Quick and Qt Widgets applications.

Supported Languages

The Virtual Keyboard supports the following languages:

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

Third-party Plugins

The Qt Virtual Keyboard supports third-party plugins from the following vendors:

Building Qt Virtual Keyboard describes how to integrate these plugins into the Qt Virtual Keyboard.


API Reference


Licenses and Attributions

Qt Virtual Keyboard is available under commercial licenses from The Qt Company. In addition, it is available under the GNU General Public License, version 3. See Qt Licensing for further details.

Furthermore Qt Virtual Keyboard potentially contains third party modules under following permissive licenses:

Lipi Toolkit, version 4.0.0

MIT License


Apache License 2.0


Apache License 2.0

Traditional Chinese IME (tcime)

Apache License 2.0 and BSD 3-clause "New" or "Revised" License

© 2024 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.