This post is targeted at any developer that needs a good framework to develop true cross platform applications.
With “true cross platform” I mean that you can build for Windows, Apple OS X, Linux, Android and other mobile platforms from the same code sources.
The licensing terms of Qt is the same whether you’re an “indie developer” or a team of developers.
There are many people out there, unsure if they should learn / use the Qt Framework, because of the relatively unclear definitions of the different licensing options.
Many feels that it would be a waste of time if they can’t sell the application in the end, without paying for a rather expensive Qt developer license or get legal problems if they include a certain part of their code.
The aim of this article is to clear up some of that uncertainty.
Qt isn’t just a GUI Framework.
You can use it to create just about any modern application with networking capabilities, 2D / 3D graphics, sound, you name it.
The user interface part (gui) of a Qt application looks really good and integrates with the platform it’s running on, so you won’t notice any difference from using an application created to run native on that device, like an OS X application written in Objective-C using Cocoa.
Qt isn’t only for C++ developers!
You can (and should) also use an XML like language called QML to create the user interface part of the application.
It’s even possible to create a complete simple application using nothing but QML if you wish.
This opens up for closer collaboration between designers and back-end coders.
It must be said that Qt is mainly a C++ framework, and to get access to the full functionality you need to use C++,
but for the user interface interface part, QML is the way to go for most projects. It saves you many hours of C++ coding.
So, what about the licensing question, man?
Oh, off course…
If the scenario goes something like:
“You’re a single developer or a team of developers that needs to use some functionality of Qt (like QtWidgets) in your application…”
The short answer is:
Relax, learn and use Qt, you can make money on the applications even if you use the LGPL version of the framework.
You need only be aware of two very important “limitations”.
1. Your application must be dynamically linked to the Qt components that came with your downloaded LGPL Qt distribution. No static linking allowed.
2. You can’t make changes to the Qt source code itself and sell your application based on the changed version of Qt.
3. Inform users of your application that Qt is used in the application in some licence text or in a readme somewhere within your distributed application files.
4. Provide a copy of the Qt LGPL licence file together with your distributed application files.
Other than that, you’re free to distribute your application as a commercial closed-source application, using any licensing you may want.
There are also corner cases, such as if you’ve made changes to Qt and those changes has been officially accepted as part of Qt, but this is not the case for most developers.
Hope this cleared things up a bit.
So start learning Qt and happy coding!