Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

awesome-qt

A curated list of awesome tools, libraries, and resources for the Qt framework.
https://github.com/JesseTG/awesome-qt

Last synced: 3 days ago
JSON representation

  • Software that Uses Qt

    • New Functionality

      • Vuo
      • Autodesk Maya - 3D animation and design software that has been used to create visual effects for some of the most popular movies and TV shows of all time.
      • CMake - The closest thing to a standard C++ build system out there. The bundled GUI uses Qt.
      • CRYENGINE - CRYENGINE/CRYENGINE) - But can it run Crysis? Some auxillary tools use Qt.
      • Google Earth - *The* virtual globe.
      • KDE - One of the most popular desktop environments for Linux.
      • LMMS - Digital audio workstation.
      • Malwarebytes - Your Windows desktop's personal bodyguard.
      • MuseScore - Music notation software.
      • Parallels Desktop - Consumer-focused virtualization.
      • Qt Creator - creator) - Something something eating your own dog food. Listed in the [official tools](#official-tools), but not listing it here doesn't feel right.
      • Rolisteam - Virtual tabletop for remote Role Playing Games.
      • Shotcut - Video editor.
      • RUBE - Level design tool for any game that uses the Box2D physics engine.
      • TeamSpeak - When gamers want to voice chat in a game that doesn't support it, they'll use this.
      • Telegram Desktop - Secure your conversations so well, you'll raise the blood pressure of potential eavesdroppers. The desktop client uses Qt and is open source.
      • Tiled - Perhaps the world's most popular tilemap editor. Suitable for level design in games.
      • VirtualBox - Virtualization software for x86/64 processors. The bundled GUI uses Qt.
      • VLC - One of the most flexible open source video players in existence.
      • Wireshark - The most popular packet-sniffer out there. You *are* going to use this for good and not evil, right?
      • Wolfram Mathematica - Programming language, symbolic calculator, and an engineer's best friend.
      • Yabause - Sega Saturn emulator.
      • Ultimaker Cura - Slicer application used to prepare your 3D models for printing with a 3D printer. Built with Uranium framework which is based on Qt 5 and Python 3.
      • here - powered applications for display.
      • CMake - The closest thing to a standard C++ build system out there. The bundled GUI uses Qt.
      • CRYENGINE - CRYENGINE/CRYENGINE) - But can it run Crysis? Some auxillary tools use Qt.
      • Google Earth - *The* virtual globe.
      • KDE - One of the most popular desktop environments for Linux.
      • Malwarebytes - Your Windows desktop's personal bodyguard.
      • MuseScore - Music notation software.
      • Parallels Desktop - Consumer-focused virtualization.
      • Rolisteam - Virtual tabletop for remote Role Playing Games.
      • RUBE - Level design tool for any game that uses the Box2D physics engine.
      • TeamSpeak - When gamers want to voice chat in a game that doesn't support it, they'll use this.
      • Telegram Desktop - Secure your conversations so well, you'll raise the blood pressure of potential eavesdroppers. The desktop client uses Qt and is open source.
      • Tiled - Perhaps the world's most popular tilemap editor. Suitable for level design in games.
      • VirtualBox - Virtualization software for x86/64 processors. The bundled GUI uses Qt.
      • VLC - One of the most flexible open source video players in existence.
      • Vuo
      • Wireshark - The most popular packet-sniffer out there. You *are* going to use this for good and not evil, right?
      • Wolfram Mathematica - Programming language, symbolic calculator, and an engineer's best friend.
      • Yabause - Sega Saturn emulator.
      • Ultimaker Cura - Slicer application used to prepare your 3D models for printing with a 3D printer. Built with Uranium framework which is based on Qt 5 and Python 3.
      • here - powered applications for display.
      • Qt Creator - creator) - Something something eating your own dog food. Listed in the [official tools](#official-tools), but not listing it here doesn't feel right.
      • KDE - One of the most popular desktop environments for Linux.
      • Wireshark - The most popular packet-sniffer out there. You *are* going to use this for good and not evil, right?
      • VLC - One of the most flexible open source video players in existence.
  • Official Resources

    • Official Website - The official website for the Qt framework.
    • Qt Documentation - Official Qt documentation. Massive and comprehensive.
    • Qt Newsletters - The best of Qt, straight to your spam filter.
    • Qt Bug Tracker - If you think you've found a bug with Qt or one of its related projects, report it here (or see if someone else already has).
    • Qt Code Review - See how the Qt maintainers ensure their code is well-written.
    • Source Code - Browse the various source trees that comprise the Qt project. Has mirrors at several GitHub organizations:
    • :octocat:
    • :octocat:
    • :octocat:
    • Official Website - The official website for the Qt framework.
    • Qt Documentation - Official Qt documentation. Massive and comprehensive.
    • Qt Newsletters - The best of Qt, straight to your spam filter.
    • Qt Bug Tracker - If you think you've found a bug with Qt or one of its related projects, report it here (or see if someone else already has).
    • Qt Code Review - See how the Qt maintainers ensure their code is well-written.
    • Source Code - Browse the various source trees that comprise the Qt project. Has mirrors at several GitHub organizations:
    • Qt Newsletters - The best of Qt, straight to your spam filter.
  • Tools

    • Official Tools

      • Qt Installer Framework - framework) - Nobody seems to talk about this, but Qt also provides a way to write an installer for your application. Does not support creation of macOS disk images, app bundles, or Linux packages, so be mindful of that when considering your project's distribution.
      • Qt Designer - If you'd rather just design the interfaces and let someone else hook them up to logic, the GUI designer is available as a separate application.
      • Qt Assistant - So is the documentation viewer, for that matter.
      • Qt Visual Studio Add-in - labs/vstools) - If you'd rather stick to Visual Studio, this add-in will let you do that.
      • Qt Linguist - Qt provides excellent internationalization/localization support, and this tool is very much responsible for it. Write translatable strings in your code with special macros, and this tool will aggregate them all for you so you or your translator(s) can broaden your software's audience.
      • `macdeployqt` - Generates macOS application bundles for Qt projects.
      • qmake - The bundled build system designed for Qt, though it can be used for non-Qt projects.
      • qbs - labs/qbs) - If QML is more your style, consider this alternative build system.
      • Emulator - Don't forget about Qt's mobile support!
      • :octocat: - Command-line tool that prints out a lot of information pertaining to both your Qt installation and your system in general. No link because there's no dedicated web page; just run `qtdiag` on the command line. Excellent for troubleshooting.
      • :octocat: - Lets you make easing curves suitable for QML, though if you understand the underlying math there's no reason you couldn't use the resulting numbers elsewhere.
      • Qt Visual Studio Add-in - labs/vstools) - If you'd rather stick to Visual Studio, this add-in will let you do that.
      • Qt Installer Framework - framework) - Nobody seems to talk about this, but Qt also provides a way to write an installer for your application. Does not support creation of macOS disk images, app bundles, or Linux packages, so be mindful of that when considering your project's distribution.
      • qbs - labs/qbs) - If QML is more your style, consider this alternative build system.
      • Emulator - Don't forget about Qt's mobile support!
    • Third-Party Tools

      • CMake - General C++ build tool that happens to have great Qt support.
      • GammaRay - Powerful debugger and general inspection tool for Qt-built software. Lets you inspect and manipulate the `QObject` hierarchy, view object properties, edit widgets at runtime, and far, *far* more. A two-sentence blurb can't do it justice, seriously check it out.
      • GammaRay - Powerful debugger and general inspection tool for Qt-built software. Lets you inspect and manipulate the `QObject` hierarchy, view object properties, edit widgets at runtime, and far, *far* more. A two-sentence blurb can't do it justice, seriously check it out.
      • moc-ng - ng) - Alternative implementation of `moc` that's binary-compatible with Qt's version.
      • Qt-Inspector - Inspector) - Inspection tool with similar goals to GammaRay, though much simpler.
      • linuxdeployqt - Lets you bundle your Qt based application as an AppDir or [AppImage](http://appimage.org), making it possible to ship it to users of many desktop Linux distributions. Similar to the official `windeployqt` and `macdeployqt` tools but for Linux.
      • Qompoter - Dependency manager for Qt / C++.
      • SIP - Generates Python bindings for C or C++ libraries. Has special support for Qt signals and slots, and was used to create [PyQt](https://riverbankcomputing.com/software/pyqt).
  • Communities

    • Official

      • Mailing Lists - Mailing lists for users and developers of Qt alike. Arguably the best place to communicate directly with Qt's maintainers. Sees frequent activity.
      • Qt Forum - If e-mail's not your thing, then you might also consider getting help or sharing knowledge on the forums.
      • Qt Wiki - The premier source for user-contributed Qt knowledge.
      • IRC - For real-time chat with other Qt developers and users. The most popular channels are on Freenode, and include `#qt`, `#qt-quick`, `#qt-creator`, and `#qt-chat`.
      • Mailing Lists - Mailing lists for users and developers of Qt alike. Arguably the best place to communicate directly with Qt's maintainers. Sees frequent activity.
      • Qt Forum - If e-mail's not your thing, then you might also consider getting help or sharing knowledge on the forums.
      • Qt Wiki - The premier source for user-contributed Qt knowledge.
      • Mailing Lists - Mailing lists for users and developers of Qt alike. Arguably the best place to communicate directly with Qt's maintainers. Sees frequent activity.
      • here
    • Unofficial

      • QtForum.org - Not to be confused with the official [Qt forum](https://forum.qt.io).
  • Bindings in Other Languages

    • Third-Party Tools

      • Python (via PyQt) - Arguably the most comprehensive and well-known binding of Qt to another language.
      • Python (via PySide) - Another binding for Python, which has been officially adopted by the Qt project.
      • Ring (via RingQt) - lang/ring/tree/master/extensions/ringqt) - I've never heard of this language either, honestly.
      • these - qt-alternative-programming-languages-part-2) [articles](https://wiki.qt.io/Category:LanguageBindings) if you want more.
      • Ring (via RingQt) - lang/ring/tree/master/extensions/ringqt) - I've never heard of this language either, honestly.
      • Ring (via RingQt) - lang/ring/tree/master/extensions/ringqt) - I've never heard of this language either, honestly.
      • Mono/.NET languages (via QtSharp) - Experimental wrapper for Qt that allows it to be used by .NET-based languages such as C#. Young, but active.
  • Libraries

    • Integrations

      • PythonQt - Script your Qt applications with Python. Not to be confused with [PyQt](https://riverbankcomputing.com/software/pyqt) or [PySide](https://wiki.qt.io/PySide).
      • QScintilla - Absurdly versatile and customizable text editor widget that provides syntax highlighting, code completion, code folding, recordable macros, and *much* more. Built around [Scintilla](http://www.scintilla.org). Created by the same company that developed [PyQt](https://riverbankcomputing.com/software/pyqt).
      • QtLua - Use Lua as a scripting language for Qt-based software.
      • QuaZIP - Read from and write to ZIP archives. Uses [Minizip](http://www.winimage.com/zLibDll/minizip.html) under the hood.
      • VLC-Qt - qt/vlc-qt) - Wrapper for [libvlc](https://wiki.videolan.org/LibVLC) that lets you add a VLC-like media player to your application.
      • mupdf-qt - qt) - Qt wrapper for the [MuPDF](https://mupdf.com) PDF viewer.
      • PythonQt - Script your Qt applications with Python. Not to be confused with [PyQt](https://riverbankcomputing.com/software/pyqt) or [PySide](https://wiki.qt.io/PySide).
      • QtLua - Use Lua as a scripting language for Qt-based software.
      • qtruby - Use Ruby as a scripting language within your application.
      • QuaZIP - Read from and write to ZIP archives. Uses [Minizip](http://www.winimage.com/zLibDll/minizip.html) under the hood.
      • VLC-Qt - qt/vlc-qt) - Wrapper for [libvlc](https://wiki.videolan.org/LibVLC) that lets you add a VLC-like media player to your application.
      • mupdf-qt - qt) - Qt wrapper for the [MuPDF](https://mupdf.com) PDF viewer.
      • neiasound - OpenAL wrapper designed for games, with [stb_vorbis](https://nothings.org/stb_vorbis) and [libsndfile](http://www.mega-nerd.com/libsndfile) support.
      • QtAwesome - Add [Font Awesome](https://fortawesome.github.io/Font-Awesome) icons to your Qt application. Other icon sets are supported, too.
      • qtruby - Use Ruby as a scripting language within your application.
      • SCodes - Qt & QML wrapper for [ZXing-C++ Library](https://github.com/nu-book/zxing-cpp) with ready-made QML items for decoding and generating 1D and 2D barcodes (aka. QR codes).
      • QtLua - Use Lua as a scripting language for Qt-based software.
    • New Functionality

      • Communi - Cross-platform IRC framework. We've got enough IRC clients out there already, but I suppose this could also be used to implement a chat function in your application (e.g. for community support).
      • cutelyst - Web framework that takes some ideas from Perl's Catalyst framework.
      • Felgo - Cross-platform game engine and app framework that relies heavily on QML. Has a lot of tools and resources, and may even deserve its own list.
      • KDE Frameworks - Metric ass-ton of libraries for KDE, but many of them can be used with regular Qt applications as well. Cross-platform, for the most part.
      • Marble - Virtual globe and map that can be used standalone or embedded within other applications.
      • QtAV - bin/QtAV) - Actively developed multimedia framework.
      • QtitanChart - Chart generation framework. Commercial.
      • QtitanRibbon - For fans of the ribbons that Microsoft uses in their software. Commercial.
      • QtXlsx - Read and write spreadsheets in Microsoft Excel format.
      • Qwt - Qt widgets designed for scientific and technical applications.
      • Communi - Cross-platform IRC framework. We've got enough IRC clients out there already, but I suppose this could also be used to implement a chat function in your application (e.g. for community support).
      • cutelyst - Web framework that takes some ideas from Perl's Catalyst framework.
      • Felgo - Cross-platform game engine and app framework that relies heavily on QML. Has a lot of tools and resources, and may even deserve its own list.
      • KDE Frameworks - Metric ass-ton of libraries for KDE, but many of them can be used with regular Qt applications as well. Cross-platform, for the most part.
      • Marble - Virtual globe and map that can be used standalone or embedded within other applications.
      • QtAV - bin/QtAV) - Actively developed multimedia framework.
      • Qtilities - Powerful set of libraries that provide GUI, logging, testing, configuration, and project functionality (among other things) for your application.
      • QtitanChart - Chart generation framework. Commercial.
      • QtitanRibbon - For fans of the ribbons that Microsoft uses in their software. Commercial.
      • qtnotify - Notification framework.
      • QtTerminalWidget - Make your application capable of **anything**.
      • qtwebserver - If you need to write a web application server in Qt for some reason, this'll help you along.
      • QtXlsx - Read and write spreadsheets in Microsoft Excel format.
      • Qwt - Qt widgets designed for scientific and technical applications.
      • DiceParser - Dice Roller framework based on its own syntax.
      • DOtherSide - Binding for QML in C, primarily designed as an API for *other* languages to support QML.
      • glraw - Convert images from any Qt-supported format to OpenGL-format textures. Useful for speeding up texture loading in graphics applications.
      • grantlee - Django-inspired text templating.
      • injeqt - Dependency injection for Qt.
      • qgexedit2 - Embed a hex editor in your application.
      • qml-material - material) - Material Design implemented in QML.
      • QNodeView - Widget that lets you create and edit nodes in a graph similar to the kind provided by Unreal Engine, Substance Designer, or PureData.
      • QSimpleUpdater - spataru/QSimpleUpdater) - Let your application update itself.
      • qt-maybe - maybe) - Fans of type theory will enjoy these sum and optional types.
      • qt-mustache - mustache) - Render [Mustache](https://mustache.github.io) templates.
      • QtAV - bin/QtAV) - Actively developed multimedia framework.
      • Qtilities - Powerful set of libraries that provide GUI, logging, testing, configuration, and project functionality (among other things) for your application.
      • qtnotify - Notification framework.
      • QtTerminalWidget - Make your application capable of **anything**.
      • QtVerbalExpressions - Create regular expressions using natural English expressions. Part of the [VerbalExpressions](https://verbalexpressions.github.io) project, which does the same thing for a wide variety of languages.
      • qtwebserver - If you need to write a web application server in Qt for some reason, this'll help you along.
      • QtXlsx - Read and write spreadsheets in Microsoft Excel format.
      • verdigris - Experimental library to write Qt applications *without* using the `moc`.
  • Software Repositories

    • New Functionality

      • #inqlude - The most well-known aggregation of Qt-centric libraries out there. A package manager is also available [here](https://inqlude.org/get.html).
      • Linux-Apps.com - Despite the name, Linux-Apps.com aggregates a wide variety of Qt-based tools and libraries for both end-users and developers.
      • Stephan Binner's Ubuntu PPAs - Ubuntu users who are hesitant to install anything outside of their package managers can obtain any recent version of Qt from these repositories. Instructions for adding them are found within.
      • #inqlude - The most well-known aggregation of Qt-centric libraries out there. A package manager is also available [here](https://inqlude.org/get.html).
      • Linux-Apps.com - Despite the name, Linux-Apps.com aggregates a wide variety of Qt-based tools and libraries for both end-users and developers.
      • QtPods - Another Qt-centric package manager. If you want to see the offerings without using QtPods, the full list is available [here](https://github.com/qt-pods/qt-pods-master/blob/master/pods.json), and can be added to by submitting a pull request.
      • Linux-Apps.com - Despite the name, Linux-Apps.com aggregates a wide variety of Qt-based tools and libraries for both end-users and developers.
  • Blogs

    • New Functionality

      • Planet Qt - Official aggregation of first-party and third-party Qt-related blogs.
      • ICS - Qt-centric software consulting firm with a really neat blog. Specializes in graphics applications.
      • [1 - tips-and-tricks-part-2)] - Odds and ends that might be nice to keep in your back pocket.
      • Mastering Qt File Selectors - Sometimes you need different variations of the same asset, but you won't know which ones to load until runtime. This class will decide for you.
      • [1 - lesser-known-qt-tools-and-commands-part-2), [3](https://www.ics.com/blog/some-lesser-known-qt-tools-and-commands-part-3), [4](https://www.ics.com/blog/some-lesser-known-qt-tools-and-commands-part-4), [5](https://www.ics.com/blog/some-lesser-known-qt-tools-and-commands-part-5)] - You don't find hidden gems by staying on the beaten path.
      • Using Self-Signed Certificates in Qt Code - Trust nobody.
      • Integrating C++ with QML - Talk to your scripting language. That's what it's there for.
      • [1 - and-opengl-loading-3d-model-open-asset-import-library-assimp-part-2)] - Assimp supports a lot of different model types; these articles will help you support all of them.
      • What's new in Qt 5: QStandardPaths - This feature's been around for a few years, but it's still useful enough to warrant an entry on this list.
      • What's New in Qt 5.2: QCommandLineParser - Another oldie, but still a goodie.
      • Woboq - Another software consulting firm that also contributes code to Qt. They seem to specialize in Qt's core architecture.
      • Moc myths debunked - The magic that Qt appears to rely in is really just a bunch of code generators. This post will bring you up to speed on the reality of the `moc`, the most notable one.
      • [1 - qt-signals-slots-work-part2-qt5.html), [3](https://woboq.com/blog/how-qt-signals-slots-work-part3-queuedconnection.html)] - Qt's signals/slots system lets any object talk to any other object. Understanding these three articles will help you take full advantage of the feature.
      • QMetaType knows your types - C++ isn't known for having good run-time type information, so Qt brings its own.
      • C++11 in Qt5 - Stop writing C++ like it's 2003; learn how you can take advantage of recent C++ features in your Qt applications.
      • C++14 for Qt programmers - `s/2003/2011/`
      • QStringLiteral explained - String literals are widely used in many applications; wouldn't it be nice if you could make them faster to access?
      • Nicer debug output in Qt using QT_MESSAGE_PATTERN - It's nice to be able to read your application's logs.
      • KDAB - *Another* consulting firm that specializes in Qt.
      • GammaRay: Taking a deep look into your Qt application - Talk about [GammaRay](https://www.kdab.com/development-resources/qt-tools/gammaray) and how it can help you dissect your Qt applications. Talk given at QtCon 2016 by [Volker Krause](https://github.com/vkrause).
      • Multithreading with Qt - I want to make my application do more than once thing at once. What could possibly go wrong? Talk given at QtCon 2016 by [Giuseppe D'Angelo](https://github.com/dangelog).
      • Linux perf for Qt developers - How to make your Qt application faster, Linux-style. Talk given at QtCon 2016 by [Milian Wolff](https://github.com/milianw).
      • Scythe-Studio - Yet another consulting company specialized in Qt
      • Qt Creator Cheat Sheet - Convenient document for improving your familiarity with Qt Creator IDE.
      • Qt Installer Framework tutorial - Series about practical usage of Qt Installer framework with in-depth overview of different features.
      • How to interface Qt with Android Java code - Getting wild and "native" with Android code in your Qt application.
      • How to use NFC in Qt/Qml application? - Have you ever wondered how to use NFC in Qt/Qml application? This blog post will give you a complex overview of the concept of near-field communication technology with examples of its usage in real life.
      • Planet Qt - Official aggregation of first-party and third-party Qt-related blogs.
      • Woboq - Another software consulting firm that also contributes code to Qt. They seem to specialize in Qt's core architecture.
      • KDAB - *Another* consulting firm that specializes in Qt.
      • Scythe-Studio - Yet another consulting company specialized in Qt
      • Qt Creator Cheat Sheet - Convenient document for improving your familiarity with Qt Creator IDE.
      • Qt Installer Framework tutorial - Series about practical usage of Qt Installer framework with in-depth overview of different features.
      • How to interface Qt with Android Java code - Getting wild and "native" with Android code in your Qt application.
      • How to use NFC in Qt/Qml application? - Have you ever wondered how to use NFC in Qt/Qml application? This blog post will give you a complex overview of the concept of near-field communication technology with examples of its usage in real life.
      • Qt Creator Cheat Sheet - Convenient document for improving your familiarity with Qt Creator IDE.
      • Woboq - Another software consulting firm that also contributes code to Qt. They seem to specialize in Qt's core architecture.
  • Books

  • Other Relevant Awesome Lists

    • New Functionality

      • Awesome C/C++ - There's no reason you can't use C++ libraries that weren't designed for Qt. Sometimes they might even suit your needs better than what Qt offers.
      • Awesome C - Same goes for C libraries; might wanna brush up on those RAII techniques while you're at it.
      • Awesome CMake - If you're not using qmake for your project, you're likely using CMake instead.
      • Awesome OpenGL - Qt is commonly used for graphics applications, even providing its own wrappers around OpenGL.
      • Awesome C - Same goes for C libraries; might wanna brush up on those RAII techniques while you're at it.
      • Awesome C - Same goes for C libraries; might wanna brush up on those RAII techniques while you're at it.