Using the Digia Qt Framework (LGPL) for “commercial” applications

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.

It’s a really nice way to get applications working on multiple devices and platforms, in the shortest time possible, and without resorting to some JavaScript “miracle application” that turns your source code into “working applications” for both desktop and mobile units and costs a fortune.

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!

About these ads

2 thoughts on “Using the Digia Qt Framework (LGPL) for “commercial” applications

  1. Hi,

    Thanks you for this tutorial!!
    I have a question.
    I want to sell my application which I created using QT and I want it to be very easy to install for my users.
    Can I create a installer which contains dynamic libs of qt (dll in case of windows)?
    Thank You.

  2. Then you’ll have to create an installer that includes the redistribution of QT run-time which is a free download for all. Don’t include any .dll’s in your shipped product. That’s the safest bet. If you include the official installer of the runtime, you don’t violate any licencing terms. But do a check on this before continuing. They change the rules now and then. Send them an e-mail.

Say something

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s