Files
awesome-awesomeness/html/qt.html
2025-07-18 22:22:32 +02:00

737 lines
38 KiB
HTML
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<h1 id="awesome-qt-awesome">Awesome Qt <a
href="https://github.com/sindresorhus/awesome"><img
src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg"
alt="Awesome" /></a></h1>
<p><a
href="https://www.qt.io"><img src="https://cdn.rawgit.com/JesseTG/awesome-qt/ef9f71a9/qt.svg" align="right" width="100"></a></p>
<blockquote>
<p>A curated list of awesome tools, libraries, and resources for the Qt
framework.</p>
</blockquote>
<p><a href="https://www.qt.io">Qt</a> is a powerful cross-platform
application development framework, for use primarily (but not
exclusively) in C++. Its great for GUI applications, but can be used
for many other things as well.</p>
<p>Contributions are welcome!</p>
<h2 id="conventions">Conventions</h2>
<ul>
<li>Any list item with an OctoCat :octocat: has a GitHub repo or
organization; click on it to see the source code!</li>
<li>List items with this :package: icon have source code hosted
elsewhere.</li>
</ul>
<h2 id="contents">Contents</h2>
<ul>
<li><a href="#official-resources">Official Resources</a></li>
<li><a href="#communities">Communities</a>
<ul>
<li><a href="#official">Official</a></li>
<li><a href="#unofficial">Unofficial</a></li>
</ul></li>
<li><a href="#tools">Tools</a>
<ul>
<li><a href="#official-tools">Official Tools</a></li>
<li><a href="#third-party-tools">Third-Party Tools</a></li>
</ul></li>
<li><a href="#bindings-in-other-languages">Bindings in Other
Languages</a></li>
<li><a href="#libraries">Libraries</a>
<ul>
<li><a href="#integrations">Integrations</a></li>
<li><a href="#new-functionality">New Functionality</a></li>
</ul></li>
<li><a href="#software-repositories">Software Repositories</a></li>
<li><a href="#blogs">Blogs</a></li>
<li><a href="#books">Books</a></li>
<li><a href="#software-that-uses-qt">Software that Uses Qt</a></li>
<li><a href="#other-relevant-awesome-lists">Other Relevant Awesome
Lists</a></li>
<li><a href="#license">License</a></li>
</ul>
<h2 id="official-resources">Official Resources</h2>
<ul>
<li><a href="https://www.qt.io">Official Website</a> - The official
website for the Qt framework.</li>
<li><a href="https://doc.qt.io">Qt Documentation</a> - Official Qt
documentation. Massive and comprehensive.</li>
<li><a href="https://www.qt.io/newsletters">Qt Newsletters</a> - The
best of Qt, straight to your spam filter.</li>
<li><a href="https://bugreports.qt.io">Qt Bug Tracker</a> - If you think
youve found a bug with Qt or one of its related projects, report it
here (or see if someone else already has).</li>
<li><a href="https://codereview.qt-project.org">Qt Code Review</a> - See
how the Qt maintainers ensure their code is well-written.</li>
<li><a href="https://code.qt.io">Source Code</a> - Browse the various
source trees that comprise the Qt project. Has mirrors at several GitHub
organizations:
<ul>
<li>Qt <a href="https://github.com/qt">:octocat:</a></li>
<li>Qt Project <a href="https://github.com/qtproject">:octocat:</a></li>
<li>Qt Labs <a href="https://github.com/qt-labs">:octocat:</a></li>
</ul></li>
</ul>
<h2 id="communities">Communities</h2>
<p>If you build it, they will come. This section describes aggregations
of Qt users who share knowledge and code with one another. The most
popular and active communities are listed in this section, but you can
find a more comprehensive list <a
href="https://wiki.qt.io/Online_Communities">here</a> (that includes
several in other languages) if youd prefer.</p>
<h3 id="official">Official</h3>
<ul>
<li><a href="http://lists.qt-project.org">Mailing Lists</a> - Mailing
lists for users and developers of Qt alike. Arguably the best place to
communicate directly with Qts maintainers. Sees frequent activity.</li>
<li><a href="https://forum.qt.io">Qt Forum</a> - If e-mails not your
thing, then you might also consider getting help or sharing knowledge on
the forums.</li>
<li><a href="https://wiki.qt.io">Qt Wiki</a> - The premier source for
user-contributed Qt knowledge.</li>
<li><a
href="https://webchat.freenode.net/?channels=%23qt%2C%23qt-quick%2C%23qt-creator%2C%23qt-chat">IRC</a>
- For real-time chat with other Qt developers and users. The most
popular channels are on Freenode, and include <code>#qt</code>,
<code>#qt-quick</code>, <code>#qt-creator</code>, and
<code>#qt-chat</code>.
<ul>
<li>For a full list of Qt-related IRC channels, see <a
href="https://wiki.qt.io/Online_Communities#IRC_channels">here</a>.</li>
<li>Note that the linked webchat client is <em>not</em> a part of the Qt
project, and is provided by the author of this list for convenience
only. These channels can be accessed through any IRC client.</li>
</ul></li>
</ul>
<h3 id="unofficial">Unofficial</h3>
<ul>
<li><a href="http://www.qtforum.org">QtForum.org</a> - Not to be
confused with the official <a href="https://forum.qt.io">Qt
forum</a>.</li>
</ul>
<h2 id="tools">Tools</h2>
<p>A good developer writes his or her own tools. A great one uses tools
others wrote. This section will help you be great; more formally, this
section details applications that make it easier to create software with
Qt. You may also be interested in the <a href="#libraries">Libraries</a>
section.</p>
<h3 id="official-tools">Official Tools</h3>
<p>The Qt framework has surprisingly many tools that dont get the
spotlight. This section describes them (as well as the star players that
do). For the purpose of this section, “tool” refers to Qt-centric
utilities whose code does <em>not</em> get embedded within your
application (but their output might).</p>
<ul>
<li><a href="https://www.qt.io/ide">Qt Creator</a> <a
href="https://github.com/qtproject/qt-creator">:octocat:</a> - By no
means does Qt lock you into its provided IDE, but its firm integration
with the framework makes it a good sell. Among other things, it provides
a UI designer, modeling tools, a documentation browser, and great QML
support if youre into that sort of thing. Theres also a plugin system,
but third-party plugins are unfortunately scarce.
<ul>
<li><a href="https://doc.qt.io/qt-5/qtdesigner-manual.html">Qt
Designer</a> <a
href="https://github.com/qt/qttools/tree/dev/src/designer">:octocat:</a>
- If youd rather just design the interfaces and let someone else hook
them up to logic, the GUI designer is available as a separate
application.</li>
<li><a href="https://doc.qt.io/qt-5/qtassistant-index.html">Qt
Assistant</a> <a
href="https://github.com/qt/qttools/tree/dev/src/assistant">:octocat:</a>
- So is the documentation viewer, for that matter.</li>
</ul></li>
<li><a href="https://doc.qt.io/archives/vs-addin">Qt Visual Studio
Add-in</a> <a href="https://github.com/qt-labs/vstools">:octocat:</a> -
If youd rather stick to Visual Studio, this add-in will let you do
that.</li>
<li><a href="https://doc.qt.io/qt-5/qtlinguist-index.html">Qt
Linguist</a> <a
href="https://github.com/qt/qttools/tree/dev/src/linguist">:octocat:</a>
- 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 softwares
audience.</li>
<li><a href="https://doc.qt.io/qtinstallerframework">Qt Installer
Framework</a> <a
href="https://github.com/qtproject/installer-framework">:octocat:</a> -
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 projects distribution.
<ul>
<li><a
href="https://doc.qt.io/qt-5/osx-deployment.html"><code>macdeployqt</code></a>
<a
href="https://github.com/qt/qttools/tree/dev/src/macdeployqt">:octocat:</a>
- Generates macOS application bundles for Qt projects.</li>
</ul></li>
<li><a href="https://doc.qt.io/qt-5/qmake-manual.html">qmake</a> <a
href="https://github.com/qt/qtbase/tree/dev/qmake">:octocat:</a> - The
bundled build system designed for Qt, though it can be used for non-Qt
projects.</li>
<li><a href="https://doc.qt.io/qbs">qbs</a> <a
href="https://github.com/qt-labs/qbs">:octocat:</a> - If QML is more
your style, consider this alternative build system.</li>
<li><a href="https://doc.qt.io/emulator">Emulator</a> - Dont forget
about Qts mobile support!</li>
<li><code>qtdiag</code> <a
href="https://github.com/qt/qttools/tree/dev/src/qtdiag">:octocat:</a> -
Command-line tool that prints out a lot of information pertaining to
both your Qt installation and your system in general. No link because
theres no dedicated web page; just run <code>qtdiag</code> on the
command line. Excellent for troubleshooting.</li>
<li><code>qmleasing</code> <a
href="https://github.com/qt/qtdeclarative/tree/dev/tools/qmleasing">:octocat:</a>
- Lets you make easing curves suitable for QML, though if you understand
the underlying math theres no reason you couldnt use the resulting
numbers elsewhere.</li>
</ul>
<h3 id="third-party-tools">Third-Party Tools</h3>
<ul>
<li><a href="https://doc.qt.io/qt-5/cmake-manual.html">CMake</a> <a
href="https://github.com/Kitware/CMake">:octocat:</a> - General C++
build tool that happens to have great Qt support.</li>
<li><a
href="https://www.kdab.com/development-resources/qt-tools/gammaray">GammaRay</a>
<a href="https://github.com/KDAB/GammaRay">:octocat:</a> - Powerful
debugger and general inspection tool for Qt-built software. Lets you
inspect and manipulate the <code>QObject</code> hierarchy, view object
properties, edit widgets at runtime, and far, <em>far</em> more. A
two-sentence blurb cant do it justice, seriously check it out.</li>
<li><a href="https://github.com/woboq/moc-ng">moc-ng</a> <a
href="https://github.com/woboq/moc-ng">:octocat:</a> - Alternative
implementation of <code>moc</code> thats binary-compatible with Qts
version.</li>
<li><a
href="https://github.com/robertknight/Qt-Inspector">Qt-Inspector</a> <a
href="https://github.com/robertknight/Qt-Inspector">:octocat:</a> -
Inspection tool with similar goals to GammaRay, though much
simpler.</li>
<li><a href="https://www.riverbankcomputing.com/software/sip">SIP</a> <a
href="https://www.riverbankcomputing.com/hg/sip">:package:</a> -
Generates Python bindings for C or C++ libraries. Has special support
for Qt signals and slots, and was used to create <a
href="https://riverbankcomputing.com/software/pyqt">PyQt</a>.</li>
<li><a
href="https://github.com/probonopd/linuxdeployqt">linuxdeployqt</a> <a
href="https://github.com/probonopd/linuxdeployqt">:octocat:</a> - Lets
you bundle your Qt based application as an AppDir or <a
href="http://appimage.org">AppImage</a>, making it possible to ship it
to users of many desktop Linux distributions. Similar to the official
<code>windeployqt</code> and <code>macdeployqt</code> tools but for
Linux.</li>
<li><a href="https://github.com/Fylhan/qompoter">Qompoter</a> -
Dependency manager for Qt / C++.</li>
</ul>
<h2 id="bindings-in-other-languages">Bindings in Other Languages</h2>
<p>This section describes software that enables creation of Qt software
in a primary language other than C++. Libraries that allow run-time
scripting in a Qt application are listed under <a
href="#integrations">Integrations</a>.</p>
<ul>
<li><a href="https://riverbankcomputing.com/software/pyqt">Python (via
PyQt)</a> <a
href="https://www.riverbankcomputing.com/software/pyqt/download5">:package:</a>
- Arguably the most comprehensive and well-known binding of Qt to
another language.</li>
<li><a href="https://wiki.qt.io/PySide">Python (via PySide)</a> <a
href="https://code.qt.io/cgit/pyside/pyside.git">:package:</a> - Another
binding for Python, which has been officially adopted by the Qt
project.</li>
<li><a href="http://ring-lang.sourceforge.net/doc/qt.html">Ring (via
RingQt)</a> <a
href="https://github.com/ring-lang/ring/tree/master/extensions/ringqt">:octocat:</a>
- Ive never heard of this language either, honestly.</li>
<li><a href="https://github.com/ddobrev/QtSharp">Mono/.NET languages
(via QtSharp)</a> <a
href="https://github.com/ddobrev/QtSharp">:octocat:</a> - Experimental
wrapper for Qt that allows it to be used by .NET-based languages such as
C#. Young, but active.</li>
</ul>
<p>See these <a
href="https://www.ics.com/blog/using-qt-alternative-programming-languages-part-1">these</a>
<a
href="https://www.ics.com/blog/using-qt-alternative-programming-languages-part-2">three</a>
<a href="https://wiki.qt.io/Category:LanguageBindings">articles</a> if
you want more.</p>
<h2 id="libraries">Libraries</h2>
<p>This section describes two kinds of third-party libraries; those that
provide their own brand-new functionality (e.g. widgets, dealing with
particular file formats), and those that provide integrations with
existing software (e.g. scripting languages, clients for REST APIs,
implementations of established protocols).</p>
<h3 id="integrations">Integrations</h3>
<p>For the purpose of this section, an “Integration”-focused library
does one of the following:</p>
<ol type="1">
<li>Serves as a client for an established Web service.</li>
<li>Wraps another library in a Qt-friendly manner as more than just an
implementation detail (i.e. it tries to mimic the wrapped API).</li>
</ol>
<ul>
<li><a href="https://xiangxw.github.io/mupdf-qt">mupdf-qt</a> <a
href="https://github.com/xiangxw/mupdf-qt">:octocat:</a> - Qt wrapper
for the <a href="https://mupdf.com">MuPDF</a> PDF viewer.</li>
<li><a href="https://github.com/lucaspcamargo/neiasound">neiasound</a>
<a href="https://github.com/lucaspcamargo/neiasound">:octocat:</a> -
OpenAL wrapper designed for games, with <a
href="https://nothings.org/stb_vorbis">stb_vorbis</a> and <a
href="http://www.mega-nerd.com/libsndfile">libsndfile</a> support.</li>
<li><a href="http://pythonqt.sourceforge.net">PythonQt</a> <a
href="https://sourceforge.net/projects/pythonqt">:package:</a> - Script
your Qt applications with Python. Not to be confused with <a
href="https://riverbankcomputing.com/software/pyqt">PyQt</a> or <a
href="https://wiki.qt.io/PySide">PySide</a>.</li>
<li><a
href="https://riverbankcomputing.com/software/qscintilla">QScintilla</a>
<a
href="https://www.riverbankcomputing.com/software/qscintilla/download">:package:</a>
- Absurdly versatile and customizable text editor widget that provides
syntax highlighting, code completion, code folding, recordable macros,
and <em>much</em> more. Built around <a
href="http://www.scintilla.org">Scintilla</a>. Created by the same
company that developed <a
href="https://riverbankcomputing.com/software/pyqt">PyQt</a>.</li>
<li><a href="https://github.com/gamecreature/QtAwesome">QtAwesome</a> <a
href="https://github.com/gamecreature/QtAwesome">:octocat:</a> - Add <a
href="https://fortawesome.github.io/Font-Awesome">Font Awesome</a> icons
to your Qt application. Other icon sets are supported, too.</li>
<li><a href="http://www.nongnu.org/libqtlua">QtLua</a> <a
href="https://svn.savannah.nongnu.org/viewvc/?root=libqtlua">:package:</a>
- Use Lua as a scripting language for Qt-based software.</li>
<li><a href="https://github.com/cybercatalyst/qtruby">qtruby</a> <a
href="https://github.com/cybercatalyst/qtruby">:octocat:</a> - Use Ruby
as a scripting language within your application.</li>
<li><a href="http://quazip.sourceforge.net">QuaZIP</a> <a
href="https://sourceforge.net/projects/quazip">:package:</a> - Read from
and write to ZIP archives. Uses <a
href="http://www.winimage.com/zLibDll/minizip.html">Minizip</a> under
the hood.</li>
<li><a href="https://vlc-qt.tano.si">VLC-Qt</a> <a
href="https://github.com/vlc-qt/vlc-qt">:octocat:</a> - Wrapper for <a
href="https://wiki.videolan.org/LibVLC">libvlc</a> that lets you add a
VLC-like media player to your application.</li>
<li><a href="https://github.com/scytheStudio/SCodes">SCodes</a> <a
href="https://github.com/scytheStudio/SCodes">:octocat:</a> - Qt &amp;
QML wrapper for <a href="https://github.com/nu-book/zxing-cpp">ZXing-C++
Library</a> with ready-made QML items for decoding and generating 1D and
2D barcodes (aka. QR codes).</li>
</ul>
<h3 id="new-functionality">New Functionality</h3>
<ul>
<li><a href="https://communi.github.io">Communi</a> <a
href="https://github.com/communi/libcommuni">:octocat:</a> -
Cross-platform IRC framework. Weve 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).</li>
<li><a href="http://cutelyst.org">cutelyst</a> <a
href="https://github.com/cutelyst/cutelyst">:octocat:</a> - Web
framework that takes some ideas from Perls Catalyst framework.</li>
<li><a href="https://github.com/Rolisteam/DiceParser">DiceParser</a> <a
href="https://github.com/Rolisteam/DiceParser">:octocat:</a> - Dice
Roller framework based on its own syntax.</li>
<li><a href="https://github.com/filcuc/DOtherSide">DOtherSide</a> <a
href="https://github.com/filcuc/DOtherSide">:octocat:</a> - Binding for
QML in C, primarily designed as an API for <em>other</em> languages to
support QML.</li>
<li><a href="https://felgo.com">Felgo</a> - 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.</li>
<li><a href="https://github.com/cginternals/glraw">glraw</a> <a
href="https://github.com/cginternals/glraw">:octocat:</a> - Convert
images from any Qt-supported format to OpenGL-format textures. Useful
for speeding up texture loading in graphics applications.</li>
<li><a href="https://github.com/steveire/grantlee">grantlee</a> <a
href="https://github.com/steveire/grantlee">:octocat:</a> -
Django-inspired text templating.</li>
<li><a href="https://github.com/vogel/injeqt">injeqt</a> <a
href="https://github.com/vogel/injeqt">:octocat:</a> - Dependency
injection for Qt.</li>
<li><a href="https://api.kde.org/frameworks">KDE Frameworks</a> <a
href="https://github.com/KDE">:octocat:</a> <a
href="https://quickgit.kde.org">:package:</a> - 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.</li>
<li><a href="https://marble.kde.org">Marble</a> <a
href="https://cgit.kde.org/marble.git">:package:</a> - Virtual globe and
map that can be used standalone or embedded within other
applications.</li>
<li><a href="https://github.com/Simsys/qhexedit2">qgexedit2</a> <a
href="https://github.com/Simsys/qhexedit2">:octocat:</a> - Embed a hex
editor in your application.</li>
<li><a href="https://github.com/papyros/qml-material">qml-material</a>
<a href="https://github.com/papyros/qml-material">:octocat:</a> -
Material Design implemented in QML.</li>
<li><a href="https://github.com/gwihlidal/QNodeView">QNodeView</a> <a
href="https://github.com/gwihlidal/QNodeView">:octocat:</a> - Widget
that lets you create and edit nodes in a graph similar to the kind
provided by Unreal Engine, Substance Designer, or PureData.</li>
<li><a
href="https://github.com/alex-spataru/QSimpleUpdater">QSimpleUpdater</a>
<a href="https://github.com/alex-spataru/QSimpleUpdater">:octocat:</a> -
Let your application update itself.</li>
<li><a href="https://github.com/robertknight/qt-maybe">qt-maybe</a> <a
href="https://github.com/robertknight/qt-maybe">:octocat:</a> - Fans of
type theory will enjoy these sum and optional types.</li>
<li><a
href="https://github.com/robertknight/qt-mustache">qt-mustache</a> <a
href="https://github.com/robertknight/qt-mustache">:octocat:</a> -
Render <a href="https://mustache.github.io">Mustache</a> templates.</li>
<li><a href="http://www.qtav.org">QtAV</a> <a
href="https://github.com/wang-bin/QtAV">:octocat:</a> - Actively
developed multimedia framework.</li>
<li><a href="https://jpnaude.github.io/Qtilities">Qtilities</a> <a
href="https://github.com/JPNaude/Qtilities">:octocat:</a> - Powerful set
of libraries that provide GUI, logging, testing, configuration, and
project functionality (among other things) for your application.</li>
<li><a
href="http://www.devmachines.com/qtitanchart-overview">QtitanChart</a> -
Chart generation framework. Commercial.</li>
<li><a
href="http://www.devmachines.com/qtitanribbon-overview">QtitanRibbon</a>
- For fans of the ribbons that Microsoft uses in their software.
Commercial.</li>
<li><a href="https://github.com/cybercatalyst/qtnotify">qtnotify</a> <a
href="https://github.com/cybercatalyst/qtnotify">:octocat:</a> -
Notification framework.</li>
<li><a
href="https://github.com/cybercatalyst/qtterminalwidget">QtTerminalWidget</a>
<a
href="https://github.com/cybercatalyst/qtterminalwidget">:octocat:</a> -
Make your application capable of <strong>anything</strong>.</li>
<li><a
href="https://github.com/VerbalExpressions/QtVerbalExpressions">QtVerbalExpressions</a>
<a
href="https://github.com/VerbalExpressions/QtVerbalExpressions">:octocat:</a>
- Create regular expressions using natural English expressions. Part of
the <a href="https://verbalexpressions.github.io">VerbalExpressions</a>
project, which does the same thing for a wide variety of languages.</li>
<li><a
href="https://github.com/cybercatalyst/qtwebserver">qtwebserver</a> <a
href="https://github.com/cybercatalyst/qtwebserver">:octocat:</a> - If
you need to write a web application server in Qt for some reason,
thisll help you along.</li>
<li><a href="http://qtxlsx.debao.me">QtXlsx</a> <a
href="https://github.com/dbzhang800/QtXlsxWriter">:octocat:</a> - Read
and write spreadsheets in Microsoft Excel format.</li>
<li><a href="http://qwt.sourceforge.net">Qwt</a> <a
href="https://sourceforge.net/projects/qwt">:package:</a> - Qt widgets
designed for scientific and technical applications.</li>
<li><a href="https://github.com/woboq/verdigris">verdigris</a> <a
href="https://github.com/woboq/verdigris">:octocat:</a> - Experimental
library to write Qt applications <em>without</em> using the
<code>moc</code>.</li>
</ul>
<h2 id="software-repositories">Software Repositories</h2>
<p>If the <a href="#libraries">Libraries</a> section doesnt satisfy
you, perhaps one of these will.</p>
<ul>
<li><a href="https://inqlude.org">#inqlude</a> - The most well-known
aggregation of Qt-centric libraries out there. A package manager is also
available <a href="https://inqlude.org/get.html">here</a>.</li>
<li><a href="https://github.com/qt-pods/qt-pods">QtPods</a> - Another
Qt-centric package manager. If you want to see the offerings without
using QtPods, the full list is available <a
href="https://github.com/qt-pods/qt-pods-master/blob/master/pods.json">here</a>,
and can be added to by submitting a pull request.</li>
<li><a href="https://www.linux-apps.com">Linux-Apps.com</a> - Despite
the name, Linux-Apps.com aggregates a wide variety of Qt-based tools and
libraries for both end-users and developers.</li>
<li><a href="https://launchpad.net/~beineri">Stephan Binners Ubuntu
PPAs</a> - 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.</li>
</ul>
<h2 id="blogs">Blogs</h2>
<p>Each entry is followed by a standout list of articles, talks, or
other resources.</p>
<ul>
<li><a href="https://planet.qt.io">Planet Qt</a> - Official aggregation
of first-party and third-party Qt-related blogs.</li>
<li><a href="https://www.ics.com/blog">ICS</a> - Qt-centric software
consulting firm with a really neat blog. Specializes in graphics
applications.
<ul>
<li>Qt Tips and Tricks [<a
href="https://www.ics.com/blog/qt-tips-and-tricks-part-1">1</a>, <a
href="https://www.ics.com/blog/qt-tips-and-tricks-part-2">2</a>] - Odds
and ends that might be nice to keep in your back pocket.</li>
<li><a
href="https://www.ics.com/blog/mastering-qt-file-selectors">Mastering Qt
File Selectors</a> - Sometimes you need different variations of the same
asset, but you wont know which ones to load until runtime. This class
will decide for you.</li>
<li>Some Lesser Known Qt Tools and Commands [<a
href="https://www.ics.com/blog/some-lesser-known-qt-tools-and-commands-part-1">1</a>,
<a
href="https://www.ics.com/blog/some-lesser-known-qt-tools-and-commands-part-2">2</a>,
<a
href="https://www.ics.com/blog/some-lesser-known-qt-tools-and-commands-part-3">3</a>,
<a
href="https://www.ics.com/blog/some-lesser-known-qt-tools-and-commands-part-4">4</a>,
<a
href="https://www.ics.com/blog/some-lesser-known-qt-tools-and-commands-part-5">5</a>]
- You dont find hidden gems by staying on the beaten path.</li>
<li><a
href="https://www.ics.com/blog/using-self-signed-certificates-qt-code">Using
Self-Signed Certificates in Qt Code</a> - Trust nobody.</li>
<li><a href="https://www.ics.com/blog/integrating-c-qml">Integrating C++
with QML</a> - Talk to your scripting language. Thats what its there
for.</li>
<li>Qt and OpenGL: Loading a 3D Model with Open Asset Import Library
(Assimp) [<a
href="https://www.ics.com/blog/qt-and-opengl-loading-3d-model-open-asset-import-library-assimp">1</a>,
<a
href="https://www.ics.com/blog/qt-and-opengl-loading-3d-model-open-asset-import-library-assimp-part-2">2</a>]
- Assimp supports a lot of different model types; these articles will
help you support all of them.</li>
<li><a
href="https://www.ics.com/blog/whats-new-qt-5-qstandardpaths">Whats new
in Qt 5: QStandardPaths</a> - This features been around for a few
years, but its still useful enough to warrant an entry on this
list.</li>
<li><a
href="https://www.ics.com/blog/whats-new-qt-52-qcommandlineparser">Whats
New in Qt 5.2: QCommandLineParser</a> - Another oldie, but still a
goodie.</li>
</ul></li>
<li><a href="https://woboq.com/blog">Woboq</a> - Another software
consulting firm that also contributes code to Qt. They seem to
specialize in Qts core architecture.
<ul>
<li><a href="https://woboq.com/blog/moc-myths.html">Moc myths
debunked</a> - 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 <code>moc</code>, the most notable one.</li>
<li>How Qt Signals and Slots Work [<a
href="https://woboq.com/blog/how-qt-signals-slots-work.html">1</a>, <a
href="https://woboq.com/blog/how-qt-signals-slots-work-part2-qt5.html">2</a>,
<a
href="https://woboq.com/blog/how-qt-signals-slots-work-part3-queuedconnection.html">3</a>]
- Qts signals/slots system lets any object talk to any other object.
Understanding these three articles will help you take full advantage of
the feature.</li>
<li><a
href="https://woboq.com/blog/qmetatype-knows-your-types.html">QMetaType
knows your types</a> - C++ isnt known for having good run-time type
information, so Qt brings its own.</li>
<li><a href="https://woboq.com/blog/cpp11-in-qt5.html">C++11 in Qt5</a>
- Stop writing C++ like its 2003; learn how you can take advantage of
recent C++ features in your Qt applications.</li>
<li><a href="https://woboq.com/blog/cpp14-in-qt.html">C++14 for Qt
programmers</a> - <code>s/2003/2011/</code></li>
<li><a href="https://woboq.com/blog/qstringliteral.html">QStringLiteral
explained</a> - String literals are widely used in many applications;
wouldnt it be nice if you could make them faster to access?</li>
<li><a
href="https://woboq.com/blog/nice-debug-output-with-qt.html">Nicer debug
output in Qt using QT_MESSAGE_PATTERN</a> - Its nice to be able to read
your applications logs.</li>
</ul></li>
<li><a href="https://www.kdab.com/category/blogs">KDAB</a> -
<em>Another</em> consulting firm that specializes in Qt.
<ul>
<li><a href="https://www.youtube.com/watch?v=JcoFk_PVhdk">GammaRay:
Taking a deep look into your Qt application</a> - Talk about <a
href="https://www.kdab.com/development-resources/qt-tools/gammaray">GammaRay</a>
and how it can help you dissect your Qt applications. Talk given at
QtCon 2016 by <a href="https://github.com/vkrause">Volker
Krause</a>.</li>
<li><a href="https://www.youtube.com/watch?v=dcSsjxhazu0">Multithreading
with Qt</a> - I want to make my application do more than once thing at
once. What could possibly go wrong? Talk given at QtCon 2016 by <a
href="https://github.com/dangelog">Giuseppe DAngelo</a>.</li>
<li><a href="https://www.youtube.com/watch?v=L4NClVxqdMw">Linux perf for
Qt developers</a> - How to make your Qt application faster, Linux-style.
Talk given at QtCon 2016 by <a href="https://github.com/milianw">Milian
Wolff</a>.</li>
</ul></li>
<li><a href="https://scythe-studio.com/blog">Scythe-Studio</a> - Yet
another consulting company specialized in Qt
<ul>
<li><a href="https://scythe-studio.com/blog/qt-creator-cheat-sheet">Qt
Creator Cheat Sheet</a> - Convenient document for improving your
familiarity with Qt Creator IDE.</li>
<li><a
href="https://scythe-studio.com/blog/deploying-app-and-generating-offline-installers-for-windows-qt-installer-framework-tutorial">Qt
Installer Framework tutorial</a> - Series about practical usage of Qt
Installer framework with in-depth overview of different features.</li>
<li><a
href="https://scythe-studio.com/blog/how-to-interface-qt-with-android-java-code">How
to interface Qt with Android Java code</a> - Getting wild and “native”
with Android code in your Qt application.</li>
<li><a
href="https://scythe-studio.com/blog/nfc-in-qt-qml-application">How to
use NFC in Qt/Qml application?</a> - 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.</li>
</ul></li>
</ul>
<h2 id="books">Books</h2>
<ul>
<li><a
href="https://www.packtpub.com/application-development/qt5-c-gui-programming-cookbook">Qt5
C++ GUI Programming Cookbook</a>, by <a
href="https://www.zhieng.com">Lee Zhi Eng</a> <a
href="https://github.com/PacktPublishing/Qt5-C-GUI-Programming-Cookbook">:octocat:</a>
- Overview of advanced GUI programming techniques for those familiar
(but not satisfied) with the basics. The source code used in the book is
available for free.</li>
<li><a
href="https://www.packtpub.com/game-development/game-programming-using-qt">Game
Programming Using Qt: Beginners Guide</a> by Witold Wysota and Lorenz
Haas - Good place to start learning how to program games with QML.</li>
<li><a
href="https://www.packtpub.com/application-development/application-development-qt-creator-second-edition">Application
Development with Qt Creator - 2nd Edition</a>, by <a
href="http://www.lothlorien.com/kf6gpe">Ray Rischpater</a> - Beginners
guide to Qt, with a lot of focus on Qt Creator and its associated
tools.</li>
<li><a
href="https://www.packtpub.com/application-development/qt-5-blueprints">Qt
5 Blueprints</a>, by <a href="https://github.com/librehat">Symeon
Huang</a> - Seems to be about the overall structure of a Qt
project.</li>
<li><a
href="https://www.packtpub.com/application-development/mastering-qt-5">Mastering
Qt 5</a>, by <a href="https://github.com/GuillaumeLazar">Guillaume
Lazar</a> and <a href="https://github.com/synapticvoid">Robin Penea</a>
<a
href="https://github.com/PacktPublishing/Mastering-Qt-5">:octocat:</a> -
Not your daddys Qt. Tips and tricks for the experienced. The source
code used in the book is available for free.</li>
<li><a
href="https://www.packtpub.com/application-development/pyside-gui-application-development-second-edition">PySide
GUI Application Development - 2nd Edition</a>, by Gopinath Jaganmohan
and Venkateshwaran Loganathan - Imagine these other books, but in
Python.</li>
<li><a href="https://qmlbook.github.io">Qt5 Cadaques</a> <a
href="https://github.com/qmlbook/qmlbook">:octocat:</a> - Free book that
focuses on QML, named for this town in northeastern Spain that the
authors vacationed to once.</li>
<li><a href="https://www.qt.io/product/qt6/qml-book">Qt6 QML Book</a> <a
href="https://github.com/qmlbook/qt6book">:octocat:</a>, by Johan
Thelin, Jürgen Bocklage-Ryannel and Cyril Lorquet - 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.</li>
</ul>
<h2 id="software-that-uses-qt">Software that Uses Qt</h2>
<p>A framework is only as great as the software that uses it.
Fortunately, much great software uses Qt.</p>
<ul>
<li><a href="http://www.autodesk.com/maya">Autodesk Maya</a> - 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.</li>
<li><a
href="https://www.blackmagicdesign.com/products/davinciresolve/">Davinci
Resolve</a> - Non-linear video editing freeware with commercial plan
used to create some Hollywood movies.</li>
<li><a href="https://cmake.org">CMake</a> <a
href="https://github.com/Kitware/CMake">:octocat:</a> - The closest
thing to a standard C++ build system out there. The bundled GUI uses
Qt.</li>
<li><a href="https://www.cryengine.com">CRYENGINE</a> <a
href="https://github.com/CRYTEK-CRYENGINE/CRYENGINE">:octocat:</a> - But
can it run Crysis? Some auxillary tools use Qt.</li>
<li><a href="https://www.stack.nl/~dimitri/doxygen">Doxygen</a> <a
href="https://github.com/doxygen/doxygen">:octocat:</a> - The most
popular documentation generator for C++, though it supports other
languages as well. The bundled GUI uses Qt.</li>
<li><a href="https://www.google.com/earth">Google Earth</a> -
<em>The</em> virtual globe.</li>
<li><a href="https://www.kde.org">KDE</a> <a
href="https://github.com/KDE">:octocat:</a> - One of the most popular
desktop environments for Linux.</li>
<li><a href="https://lmms.io/">LMMS</a> - Digital audio
workstation.</li>
<li><a href="https://www.malwarebytes.com">Malwarebytes</a> - Your
Windows desktops personal bodyguard.</li>
<li><a href="https://musescore.org">MuseScore</a> - Music notation
software.</li>
<li><a href="https://www.parallels.com/products/desktop">Parallels
Desktop</a> - Consumer-focused virtualization.</li>
<li><a href="https://www.qt.io/ide">Qt Creator</a> <a
href="https://github.com/qtproject/qt-creator">:octocat:</a> - Something
something eating your own dog food. Listed in the <a
href="#official-tools">official tools</a>, but not listing it here
doesnt feel right.</li>
<li><a href="http://www.rolisteam.org">Rolisteam</a> <a
href="https://github.com/Rolisteam/rolisteam">:octocat:</a> - Virtual
tabletop for remote Role Playing Games.</li>
<li><a href="https://shotcut.org/">Shotcut</a> - Video editor.</li>
<li><a href="https://www.iforce2d.net/rube">RUBE</a> - Level design tool
for any game that uses the Box2D physics engine.</li>
<li><a href="https://www.teamspeak.com">TeamSpeak</a> - When gamers want
to voice chat in a game that doesnt support it, theyll use this.</li>
<li><a href="https://desktop.telegram.org">Telegram Desktop</a> <a
href="https://github.com/telegramdesktop/tdesktop">:octocat:</a> -
Secure your conversations so well, youll raise the blood pressure of
potential eavesdroppers. The desktop client uses Qt and is open
source.</li>
<li><a href="http://www.mapeditor.org">Tiled</a> <a
href="https://github.com/bjorn/tiled">:octocat:</a> - Perhaps the
worlds most popular tilemap editor. Suitable for level design in
games.</li>
<li><a href="https://www.virtualbox.org">VirtualBox</a> <a
href="https://www.virtualbox.org/browser/vbox/trunk">:package:</a> -
Virtualization software for x86/64 processors. The bundled GUI uses
Qt.</li>
<li><a href="https://www.videolan.org/vlc">VLC</a> <a
href="https://code.videolan.org">:package:</a> - One of the most
flexible open source video players in existence.</li>
<li><a href="https://vuo.org">Vuo</a> <a
href="https://github.com/vuo/vuo">:octocat:</a> — Realtime visual
programming language for interactive media.</li>
<li><a href="https://www.wireshark.org">Wireshark</a> <a
href="https://code.wireshark.org/review/gitweb?p=wireshark.git;a=tree">:package:</a>
- The most popular packet-sniffer out there. You <em>are</em> going to
use this for good and not evil, right?</li>
<li><a href="https://www.wolfram.com/mathematica">Wolfram
Mathematica</a> - Programming language, symbolic calculator, and an
engineers best friend.</li>
<li><a href="https://yabause.org">Yabause</a> <a
href="https://github.com/Yabause/yabause">:octocat:</a> - Sega Saturn
emulator.</li>
<li><a href="https://ultimaker.com/software/ultimaker-cura">Ultimaker
Cura</a> <a href="https://github.com/Ultimaker/Cura">:octocat:</a> -
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.</li>
</ul>
<p>Theres also an official showroom <a
href="https://showroom.qt.io">here</a>, which lets developers submit
their own Qt-powered applications for display.</p>
<h2 id="other-relevant-awesome-lists">Other Relevant Awesome Lists</h2>
<p>If youre familiar with Awesome, youll know that theres an
<em>extremely</em> wide variety of resources, the usefulness of which
will depend on your project. However, if youre developing Qt
applications, youll almost certainly want to look at these as well.</p>
<ul>
<li><a href="https://github.com/fffaraz/awesome-cpp">Awesome C/C++</a> -
Theres no reason you cant use C++ libraries that werent designed for
Qt. Sometimes they might even suit your needs better than what Qt
offers.</li>
<li><a href="https://github.com/aleksandar-todorovic/awesome-c">Awesome
C</a> - Same goes for C libraries; might wanna brush up on those RAII
techniques while youre at it.</li>
<li><a href="https://github.com/onqtam/awesome-cmake">Awesome CMake</a>
- If youre not using qmake for your project, youre likely using CMake
instead.</li>
<li><a href="https://github.com/eug/awesome-opengl">Awesome OpenGL</a> -
Qt is commonly used for graphics applications, even providing its own
wrappers around OpenGL.</li>
</ul>
<h2 id="license">License</h2>
<p><a href="https://creativecommons.org/publicdomain/zero/1.0"><img
src="https://mirrors.creativecommons.org/presskit/buttons/88x31/svg/cc-zero.svg"
alt="CC0" /></a></p>
<p>To the extent possible under law, <a
href="https://jessetg.github.io">Jesse Talavera-Greenberg</a> has waived
all copyright and related or neighboring rights to this work. See the <a
href="LICENSE">LICENSE</a> file for details.</p>
<p><a href="https://github.com/JesseTG/awesome-qt">qt.md Github</a></p>