Qt qtgamepad - winarm32 port of Qt 6.9.0
  • C++ 79.1%
  • Objective-C++ 11.2%
  • CMake 4.5%
  • Java 3.8%
  • Objective-C 0.9%
  • Other 0.5%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Shawn Rutledge 013ff63830 mousegrab example: add find_package(... QuickActionStore)
The example links Qt::QuickActionStore without ever asking for it. That
worked as long as every QML plugin recorded its backing module as a CMake
dependency: Qt6QmlConfig loads every file in Qt6Qml/QmlPlugins, so
find_package(Qt6 COMPONENTS Quick) pulled in Qt6QuickActionStore by way
of its QML plugin. After qtbase commit
2a04c2501f627c6d09f030355c9ab6031b2eebc0 those dependencies are recorded
only for Android, and configuring the example standalone fails with

  Target "mousegrab" links to: Qt::QuickActionStore
  but the target was not found.

Asking for QuickUniversalInput is not enough, because
Qt6QuickUniversalInput does not depend on Qt6QuickActionStore.

Task-number: QTBUG-149668
Change-Id: Ibea765fdbcd3c7062c62adc3af928826b2bc4c98
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
2026-10-16 08:10:29 +00:00
coin Restore buildable state on dev after CMake conversion 2026-06-03 15:55:18 +00:00
examples mousegrab example: add find_package(... QuickActionStore) 2026-10-16 08:10:29 +00:00
LICENSES Add source SBOM and REUSE licensing metadata 2026-06-03 15:55:39 +00:00
src Add the misc2 through misc6 buttons 2026-10-16 08:10:16 +00:00
tests Make the QML layer test work where the application is bundled 2026-08-16 09:38:16 +00:00
.cmake.conf Bump the module version to 6.13.0 and update dependencies 2026-08-11 20:20:05 +00:00
.gitattributes import missing .gitattributes 2016-05-10 17:30:12 +00:00
.gitignore Cleanup Examples 2017-02-03 13:46:51 +00:00
.gitmodules Expand scope of QtGamepad to QtUniversalInput 2024-06-09 19:22:21 +02:00
.tag import missing .gitattributes 2016-05-10 17:30:12 +00:00
CMakeLists.txt Expand scope of QtGamepad to QtUniversalInput 2024-06-09 19:22:21 +02:00
configure.cmake Expand scope of QtGamepad to QtUniversalInput 2024-06-09 19:22:21 +02:00
dependencies.yaml Update dependencies 2026-10-16 07:15:17 +00:00
licenseRule.json Add source SBOM and REUSE licensing metadata 2026-06-03 15:55:39 +00:00
README.md Add module documentation 2026-06-05 12:37:29 +00:00
REUSE.toml Add source SBOM and REUSE licensing metadata 2026-06-03 15:55:39 +00:00

Qt Universal Input

Qt Universal Input is an experimental module that explores cross-platform handling of game controllers, joysticks and other exotic input devices. Its input layer is derived from the input handling of the Godot engine and uses the community SDL game controller database to map physical devices onto a common gamepad layout.

Stylistic Gamepads

Modules

This repository builds three closely related areas of functionality:

  • QtUniversalInput — the core module. QUniversalInput is a singleton that reports the live state of connected joysticks and gamepads, and QActionStore maps raw input onto named, game-level actions.
  • QtGamepad — a thin compatibility module providing the QGamepad convenience class for reading a single gamepad. It is implemented on top of QtUniversalInput.
  • QML modules (QtUniversalInput, QtActionStore, QtGamepad) that expose the same functionality to Qt Quick.

Platform backends are provided as plugins for Android, iOS, Linux (evdev), macOS and Windows.

Building

The module builds like any other Qt module:

qt-configure-module /path/to/qtgamepad
cmake --build .

Examples

The examples/universalinput directory contains several examples, including a console joystick monitor, an on-screen virtual gamepad, and games driven through the action-mapping API.

License

Qt Universal Input is available under commercial licenses, and under the LGPL 3.0, GPL 2.0 and GPL 3.0 open source licenses. Bundled third-party components are covered by their own licenses; see the LICENSES directory and the qt_attribution.json files for details.