/awesome-qt-qml

A curated list of awesome Qt and QML libraries, resources, projects, and shiny things.

Awesome Qt

A curated list of awesome Qt and QML libraries, resources, projects, and shiny things. Inspired by awesome-cpp and other awesome lists.

Pull requests of new projects/apps/libraries are welcome :)

Android

Apple iOS

  • quickios - QML Theme and Component Library for iOS.
  • CuteContacts-iOS - Qt/QML-based clone of iOS7 contacts application UI.

Async

Binding

  • Language Bindings - List of available bindings, maintained in the Qt Wiki.
  • Language Bindings - List of language bindings, maintained on Wikipedia.
  • Qml.Net - Qml.Net is cross-platform integration of Qml/QtQuick for .NET Core/.NET Framework/Mono. It is a binding that brings .NET types into JavaScript with full interoperability.
  • DOtherside - C language library for creating bindings for the Qt QML language.
  • Bindgen - Binding and wrapper generator for C++ libraries, focused on Crystal.
  • qt5.cr - Bindings to Crystal via Bindgen.
  • PyQt - PyQt is a set of Python v2 and v3 bindings for Qt and runs on all platforms supported by Qt including Windows, MacOS/X and Linux. PyQt5 supports Qt v5.
  • PySide - The PySide project provides LGPL-licensed Python bindings for the Qt. It also includes complete toolchain for rapidly generating bindings for any Qt-based C++ class hierarchies.
  • PyOtherSide - A Qt 5 QML Plugin that provides access to a Python 3 interpreter from QML.
  • go-qt - Qt binding for Go (Golang) with support for Windows / macOS / Linux / Android / iOS / Sailfish OS / Raspberry Pi / AsteroidOS.
  • qmetaobject-rs - A framework empowering everyone to create Qt/QML applications with Rust.
  • qmlrs - qmlrs allows the use of QML/QtQuick code from Rust.
  • libqmlbind - A C library for creating QML bindings for other languages easily through exporting objects to QML.
  • lablqml - Let's write QML/QtQuick GUI's for OCaml and Reason.
  • pythonqt - A library for embedding Python into your application.

Compression

  • KArchive - A library for creating, reading, writing and manipulating file archives like zip and tar. It also provides transparent compression and decompression of data, using formats like gzip, via a subclass of QIODevice.
  • ArchiveQt - A simple Qt based archiving solution with libarchive backend

Cryptography

  • Qt Cryptographic Architecture (QCA) - Taking a hint from the similarly-named Java Cryptography Architecture, QCA aims to provide a straightforward and cross-platform crypto API, using Qt datatypes and conventions.

Database

  • QxOrm - QxOrm library is an Object Relational Mapping (ORM) library for C++/Qt developers.
  • QtMongo - Bindings for QML to MongoDB.
  • QmlSql - A couple of wrapper classes that are for QSql.
  • qtleveldb - Qt/QML wrapper for Google's LevelDB.
  • sqlite-editor-qtqml - A SQLite Editor written in Qt+QML.
  • Nut - Advanced, Powerful and easy to use ORM for Qt5

Development

  • QHot - Hot reload of nested QML projects.
  • qml-online - WebAssembly QML viewer.
  • qml-livereload - Simple QtQuick app live viewer.
  • hotloader.pri - Hot Reload QML Files.
  • terrariumapp - UI Prototyping Tool for Coders (source).
  • qmlfmt - command line application that formats QML files.
  • QmlExplorer - A Qt QML running environment and examples explorer app.
  • doxyqml - Doxyqml turns .qml into pseudo-C++ which Doxygen can then use to generate documentation.
  • Qmljsify - Convert an NPM package into a QML friendly JavaScript file.
  • qml-quickstart - QML kickstart boilerplate with live reload and HTTP caching.
  • qmlscriptconsole - The QML Script Console.

Editor Integration

Game Engine

  • Bacon2D - Bacon2D is a framework to ease 2D game development, providing ready-to-use QML elements representing basic game entities needed by most of games.
  • QmlOgre - Integrates Ogre3D into Qt QML scenes by rendering Ogre to FBOs.

Graphics

  • qml-box2d - Box2D QML plugin.
  • Chart.qml - Chart.qml like Chart.js.
  • qml-ogdf - This plug-in provides a binding of Open Graph Drawing Framework to QtQML (Version 5.0+).
  • qml_framerate - Display QML Window frame rate (FPS).

GraphQL Clients

Hardware

  • qml-cvcamera - CVCamera is a QML wrapper for fast camera access using OpenCV. It works on desktop and Android.
  • pot - Raspberry Pi accelerated video/image rendering with Qt: custom QML components and QtMultimedia backend.
  • QtJoysticks - The QJoysticks library allows your Qt application to read input from both real joysticks/gamepads (using SDL) and a virtual joystick (using the keyboard).
  • Qt Touch Bar - A QML item for the Apple Touch Bar
  • Qt/QML Bluetooth Low Energy Demo - Parking sensor example. It shows how to integrate Qt and ESP32 via Bluetooth Low Energy. Demo is using distance sensor and OLED display ESP32 module.

Images

  • QML-Loaders - Loading animation implementations in QML.
  • qqr.js - QML bindings for qr.js Javascript QR code library.
  • imagequick - Simple image browser written in QML.
  • QMLExif - QMLExif is a pulgin for reading exif infomation from image file by libexif.
  • QML-ImageProvider - Demonstrate how to use QQuickImageProvider to provide a stream of image to QML.
  • SCodes - Qt & QML wrapper for ZXing-C++ Library with ready-made QML items for decoding and generating 1D and 2D barcodes (aka. QR codes).

JavaScript

  • Node.qml - Node.qml is an effort to provide a Node.js compatibility layer to QML applications.
  • Quickly - ES6 and Node.js-like environment for QML.
  • quicknative - Native components for QML.
  • quickflux - QuickFlux is an implementation of Flux Application Architecture Framework from Facebook.
  • qredux - Redux for QML.
  • qml_underscorejs - A port of underscore.js to Qt/QML.
  • react-qml - A bridge library that allows to use React.js with QML.
  • qml-browserify - Browserify for QML (archived, moved to GitLab).
  • Qondrite - QML wrapper for Asteroid, a Javascript Meteor client library.
  • qml-lodash - Simple Lodash wrapper to ease its usage in QML.

JSON

  • qsyncable - A solution of nested Json List Model.
  • spine-qml-converter - Converts Spine by Esoteric Software export json format into native QML items and animations.

Logging

  • qmllogging - Single-header only, Easylogging++ wrapper for advanced logging support for QML applications (unmaintained).
  • QmlLogger - Simple Javascript Based Logger For QML.

Math

  • biginteger - QML BigInteger library.
  • QCustomPlot - is a Qt C++ widget for plotting and data visualization.

Misc

  • qmlweb - A QML engine in a web browser.
  • qmlwebdriver - QtWebDriver is a WebDriver implementation for Qt.
  • qml-virtualkey - Pure QML in-app virtual key/keyboard/pad.
  • textsecure-qml - TextSecure UI in Go and QML.
  • poor-maps - Maps and navigation.
  • qml-presentation-system - This is a slide presentation system written in QML.
  • qtshell - Manipulate files by a shell command style API.
  • sparkqml - SparkQML - A QML Document Viewer for State and Transition Preview.
  • qmlweb-parser - A QML parser in JavaScript.
  • qml-creative-controls - QML controls for creative applications and creative coding.
  • qtci - Collection of scripts to build Qt application in command line environment.
  • qml-gnatt - QML Gantt - An efficient implementation of a gantt chart library for qml.
  • qml-chilitags - QMLChilitags is a QML wrapper for the fiducial marker tracker Chilitags.
  • phoneME-QML - QML interface for phoneME, which allows you to run Java MIDlets (JaveME, MIDP).
  • QtQuickVcp - A Virtual Control Panel for Machinekit written in Qt/C++/QML.
  • qmlcore - QML to HTML5 translator, both for mobile and desktop targets.
  • qml-handwriting - Open source handwriting recognition keyboard written in QML/JavaScript.
  • SortFilterProxyModel - A nicely exposed QSortFilterProxyModel for QML.
  • qmlsaver - Screensaver written in Qt4/QML.
  • QtFreeVirtualKeyboard - A QML based on screen virtual keyboard for embedded QML applications.
  • Qt-Advanced-Docking-System - Advanced Docking System for Qt.
  • qtermwidget - The terminal widget for QTerminal.
  • qmltermwidget - This project is a QML port of qtermwidget.
  • yat - Terminal Emulator written in C++ and qml.
  • qmlnotify - Desktop notification server which implements org.freedesktop.Notifications, using modern Qt/Qml technologies.
  • qml-slideshow - QML Slideshow: the Declarative Hierarchical Finite Slide Machine & Toolkit.
  • aqt-cassowary - Aqt.Cassowary (pronounced like Acute Cassowary) is a Qt plugin that allows you to run a incremental linear constraint solver in QML applications, providing a declarative interface that fits naturally in the QML programming model.
  • qml-colorpicker - A basic colorpicker control made in Qt Quick/QML.
  • qmltooltip - A simple tooltip system for QML.
  • QML-Code-editor - A simple code editor using QML and C++.
  • QmlPrinter - Simple Qt component which allows user to print out a QML view from C++.
  • ComponentPrinter - QML component for printing from QML.
  • SlideMenu - Implementation of a slide menu in QML.
  • QMLRearrangeableTreeView - A list-based TreeView that can be rearranged with a mouse or touch device.
  • DateSelector - Date selector in QML.
  • KeePassTouch - Ubuntu Touch Version of KeePass (QML & C++).
  • qnite - qnite is a charting library that provides a really high level API (via QML) to customize and render interactive charts in your Qt applications.
  • QmlGrid - This is a QML Data grid using Qt Quick Controls 2.
  • qml-cache - qml-cache is a persistent app-exclusive key-value store plugin.
  • QCar - Car computer software written in Qt/QML & C++.
  • ProgressBarCollection - A collection of progress bars.
  • bodyweight-timer - time supporting app for traing purposes (bodyweight-training) on Jolla Sailfish OS.
  • QmlStateMachine - Sample Qt project to show how to use a C++ state machine with QML for UI.
  • qmlcompletionbox - Just an example of completion box in Qt with QtQuick.
  • qmlmatrix - Matrix animation running on QT5 framework QML engine.
  • QMLTable - Table implementation for Qt 5 with QtQuick Components 2.
  • qmlofflinesceen - This Project create images in a OpenGLFramebuffer, this is to grab images from qml file without actual viewer.
  • qmltranslator - Class for translations strings in C++/Qml code.
  • QML-UI-Animations - QML implementations of various UI concepts by various artists.
  • SolarSystem - Solar system model based on Qt3D framework.
  • QMLTreeView - QMl TreeView with custom folder list model in C++.
  • QQuickDock - Docking window for Qt Quick.
  • nodeeditor - Qt Node Editor. Dataflow programming framework.
  • QtMvvm - A mvvm oriented library for Qt, to create Projects for Widgets and Quick in parallel.
  • QtRestClient - A library for generic JSON-based REST-APIs, with a mechanism to map JSON to Qt objects.
  • QtAutoUpdater - A Qt library to automatically check for updates and install them.
  • QMarkdownTextEdit - A C++ Qt QPlainTextEdit widget with markdown highlighting support and some other extras.
  • QSourceHighlite - A lightweight source code/syntax highlighter written in Qt C++.
  • QmlTreeViewExample - Here is an example of how a tree might look in QML.

Multimedia

  • QtAv - A multimedia playback framework based on Qt and FFmpeg to write a player easily.
  • qmlvideo - QML video element backend by libVLC, rendered on gl texture.
  • QmlVlcDemo - Simple demo app for QmlVlc lib.
  • qmlmidi - MIDI plugin for Qt Quick. Enables using MIDI input or output devices from declarative QML.
  • qml-recorder - A QML plugin for audio recording.
  • Elisa - Music Player.
  • Kamoso - Webcam Application.
  • Webvfx - WebVfx is a video effects framework that allows video effects (filters, transitions etc.) authored using QtQuick.

Networking

  • libmaia - libmaia is a easy-to-use XML-RPC library for Qt.
  • libcommuni - A cross-platform IRC framework written with Qt (source).
  • qxmpp - Cross-platform C++ XMPP client and server library.
  • lightbulb - Open-source XMPP client for Symbian, written using QML and QtQuick libraries.
  • qml-sockets - Exposing Qt's C++ socket objects to QML for declarative use.
  • HttpRequest - HttpRequest such as XMLHttpRequest, but more powerful.
  • protobuf-qml - Efficient schematized serialization and RPC for QtQuick2 applications through Protocol Buffers and gRPC bindings.
  • QuickDownload - Easy way to download files with Qt QML and C++.
  • QML-WebSocket - This is a lightweight Qt Qml wrapper for legacy version of websocketpp.
  • QtMqtt - Qt and QML Mqtt Library.
  • qml-soap - qml-soap is simple SOAP client plugin created to use mostly with QML.
  • qml-tcpsockets - QML wrappers for QTcpServer and QTcpSocket.
  • kdeconnect-kde - Software to connect with Andriod phones. App and Plasmoid are both in QML.
  • Liri - Web Browser.
  • QSsh - SSH and SFTP support for Qt. This project is based on Qt Creator's libQtcSsh.so.
  • qtrest - a small and simple REST API client for any Qt/QML application.
  • QtProtobuf - gRPC and Protobuf generator and bindings for Qt framework

Package Manager

  • qpm - A package manager for Qt (source).
  • Discover - Package manager GUI, including Flatpaks.

QML Specific

  • frida-qml - Frida Qml plugin.
  • qmlc - The Qml Compiler can be used to convert Qml source code files into precompiled Qml files. The precompiled Qml files are faster to load and do not expose the source code. Normally, the Qt either compiles the Qml files in the startup or interprets the Qml files runtime.
  • viewstack.pri - ViewStack is a wrapper of StackView (QQC2) that provides a stateless interface.
  • quickcross - QML Cross Platform Utility Library.
  • qml-colors - A library that extends the set of operations with color values in QML.

SDKs

  • Felgo - Felgo (previously V-Play Engine) allows easy cross-platform mobile games and apps development for all major platforms including iOS, Android, BlackBerry.
  • arcgis-runtime-toolkit-qt - This project contains QML source code for controls and utilities you can use with the ArcGIS Runtime SDK for Qt.
  • QtFirebase - An effort to bring the Firebase C++ API to Qt + QML.
  • GATutorial-QML - A simple integration of Google Analytics with Qt Quick for iOS and Android.
  • QtAdMob - QtAdMob is a C++ lib for Qt with QML support, which allows to show ads from AdMob on Android and iOS platforms.
  • Kirigami - lightweight user interface framework for mobile and convergent applications.
  • DFL - A collection of pure Qt libraries useful in building a Desktop Environment.
  • QDocumentView - QDocumentView is a widget to render multi-page documents. Also provided is the abstract QDocument class, which can be used to build backends for various single/multi-page document formats, like PDF, DjVu, etc.

Styling

  • fluid - Fluid is a collection of cross-platform QtQuick components for building fluid and dynamic applications.
  • fontawesome.pri - Using FontAwesome in QML.
  • font-awesome-qml - Font Awesome in QML (Qt Quick).
  • QMLFontAwesome - Resources for FontAwesome support in your QML application.
  • qml-material - Material Design implemented in QtQuick.
  • qml-bootstrap - Sweet Qml components inspired from Ionic framework style for mobile and desktop Qt/Qml projects.
  • StratifyQML - Stratify Labs UI QML framework inspired by Twitter Bootstrap.
  • FlatUI-Controls-QML - This is custom made and themed QML controls. The controls are made to look and behave just like Flat UI Toolkit.
  • aqt-stylesheets - StylesSheets is a library for Qt/QML that allows you to apply CSS stylesheets to QML applications.

Templates

Testing

  • qmlunit - An easy-to-use Unit Testing framework for Qt Declarative UI - QML [unmaintained].
  • testable - Qt/QML Test Runner and Utilities.
  • testrunner - Qt Test Runner - A tiny tool to execute multiple QTestLib application and combine the testing result into a summary report.
  • QmlSpec - QmlSpec is a replacement for QML's bundled-in unit testing module QtTest.

Visualization

  • QuickVtk - A VTK prototyping application based on QtQuick/QML.
  • quickqanava - C++14 network/graph visualization library (source).

Web Frameworks

  • Cutelyst - Cutelyst is a web framework written in C++11 and Qt, performant and inspired in the Perl Catalyst Web Framework. (source)
  • QDjango - QDjango is a web framework written in C++ and built on top of the Qt library. Where possible it tries to follow django's API, hence its name.

X11/Wayland

  • sddm - QML based X11 and Wayland display manager.
  • QtGreet - Qt based Wayland display manager for use with greetd.
  • shell - QtQuick and Wayland shell for convergence.
  • qmlcompmgr - It's a simple compositing manager for X11, written using Qt Quick and QML. Not ready for production.
  • DesQ - DesQ is a simple and elegant Desktop Environment built on top of Qt/Wayland and Wayfire. It is intended to be a very light and yet, visually appealing desktop environment.
  • PaperDE - An awesome Desktop Environment built on top of Qt/Wayland and wayfire.
  • RDE - RDE is a feature-rich modular desktop environment for use with the Wayfire compositor.

Learning

  • The QML Book - The QML Book. (source)
  • GCompris - For Kids.
  • Ktouch - Touch Typing Tutor.
  • RCSE - Rolisteam Character Sheet Editor: easier way to create a character sheet, rcse provides more than that. It helps learning QML: draw your page, generate code, change it, execute it, and see the result.
  • QML Coding Guidelines: A collection of good practices when writing QML code.
  • Qt6 QML Book - Free book created by Qt Company. It provides you with a walk through of the different aspects of application development using the new Qt 6. It focuses on the Qt Quick technology, but also provides necessary information about writing C++ back-ends and extension for Qt Quick.
  • Qt and QML tutorial - Qt and QML from scratch tutorial created by Scythe Studio.

Software

  • files - File manager.
  • tensor - Tensor is an IM client for the Matrix protocol in development.
  • yat - Terminal Emulator written in C++ and qml.
  • cool-retro-term - Is a terminal emulator which mimics the look and feel of the old cathode tube screens. It has been designed to be eye-candy, customizable, and reasonably lightweight.
  • Tiled - Tiled is a general purpose tile map editor. It is meant to be used for editing maps of any tile-based game, be it an RPG, a platformer or a Breakout clone.
  • yubioath-desktop - Yubico Authenticator for Desktop (Windows, macOS and Linux).
  • pegasus-frontend - A cross platform, customizable graphical frontend for launching emulators and managing your game collection.
  • tdesktop - Telegram Desktop messaging app.
  • panopticon - A libre cross-platform disassembler.
  • TelegramQML - Telegram API tools for QtQml and Qml. It's based on Cutegram-Core and libqtelegram.
  • qmlvncviewer - VNC viewer component by qt quick.
  • harbour-sailfinder - Sailfinder source code & bug tracker.
  • Rolisteam - VirtualTableTop software to play Pen and paper role playing games.
  • IPConnect - P2P Chat and File Transfer Desktop Application.
  • QOwnNotes - QOwnNotes is a plain-text file notepad and todo-list manager with markdown support and ownCloud / Nextcloud integration.
  • SerialTest - Debugging serial port/Bluetooth SPP/BLE/TCP server/TCP client/UDP connections on Windows/Linux/Android.

Websites