update
This commit is contained in:
736
html/qt.md2.html
Normal file
736
html/qt.md2.html
Normal file
@@ -0,0 +1,736 @@
|
||||
<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++. It’s 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
|
||||
you’ve 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 you’d 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 Qt’s maintainers. Sees frequent activity.</li>
|
||||
<li><a href="https://forum.qt.io">Qt Forum</a> - If e-mail’s 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 don’t 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 you’re into that sort of thing. There’s 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 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.</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 you’d 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 software’s
|
||||
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 project’s 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> - Don’t forget
|
||||
about Qt’s 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
|
||||
there’s 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 there’s no reason you couldn’t 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 can’t 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> that’s binary-compatible with Qt’s
|
||||
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>
|
||||
- I’ve 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 &
|
||||
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. 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).</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 Perl’s 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,
|
||||
this’ll 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 doesn’t 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 Binner’s 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 won’t 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 don’t 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. That’s what it’s 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">What’s new
|
||||
in Qt 5: QStandardPaths</a> - This feature’s been around for a few
|
||||
years, but it’s still useful enough to warrant an entry on this
|
||||
list.</li>
|
||||
<li><a
|
||||
href="https://www.ics.com/blog/whats-new-qt-52-qcommandlineparser">What’s
|
||||
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 Qt’s 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>]
|
||||
- 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.</li>
|
||||
<li><a
|
||||
href="https://woboq.com/blog/qmetatype-knows-your-types.html">QMetaType
|
||||
knows your types</a> - C++ isn’t 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 it’s 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;
|
||||
wouldn’t 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> - It’s nice to be able to read
|
||||
your application’s 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 D’Angelo</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: Beginner’s 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> - Beginner’s
|
||||
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 daddy’s 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 desktop’s 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
|
||||
doesn’t 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 doesn’t support it, they’ll 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, you’ll 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
|
||||
world’s 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
|
||||
engineer’s 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>There’s 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 you’re familiar with Awesome, you’ll know that there’s an
|
||||
<em>extremely</em> wide variety of resources, the usefulness of which
|
||||
will depend on your project. However, if you’re developing Qt
|
||||
applications, you’ll almost certainly want to look at these as well.</p>
|
||||
<ul>
|
||||
<li><a href="https://github.com/fffaraz/awesome-cpp">Awesome C/C++</a> -
|
||||
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.</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 you’re at it.</li>
|
||||
<li><a href="https://github.com/onqtam/awesome-cmake">Awesome CMake</a>
|
||||
- If you’re not using qmake for your project, you’re 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/skhaz/awesome-qt">qt.md Github</a></p>
|
||||
Reference in New Issue
Block a user