Ive been reading about Qt and its licensing and ive come across this part:

Qt is available under different licensing options designed to accommodate the needs of our various users:

Qt licensed under commercial licenses is appropriate for development of proprietary/commercial software where you do not want to share any source code with third parties or otherwise cannot comply with the terms of the GNU LGPL version 3. Qt licensed under the GNU Lesser General Public License (LGPL) version 3 is appropriate for the development of Qt applications provided you can comply with the terms and conditions of the GNU LGPL version 3 (or GNU GPL version 3).

Im confused, because some modules of Qt (QtCharts and QSql for example) state that the module is:

available under free software licenses. Since Qt 5.4, these free software licenses are GNU Lesser General Public License, version 3, or the GNU General Public License, version 2

i still dont understand which license do i have to comply with, is it GPL or LGPL ? do i get to choose which is better for my project ?

Note: Im only talking about Qt Community, the commercial license is out of my reach for now.

Thank you

  • most Qt modules are LGPL, but some are GPL. Sometimes you have a choice between multiple open source licenses, e.g. the LGPLv3 vs GPLv2 in the cited case. If you want to develop closed software, the LGPL is likely the appropriate choice.
    – amon
    Feb 3 '20 at 14:24
  • 1
    @amon thank you for the answer, in the 2 examples ive given (QtSQL & QtCharts) the use of the word 'or' in the Qt docs, does it mean that i get to choose either LGPL or GPL as you mentioned ? (most of the modules i need for my commercial project have the 'available under GPL or LGPL')
    – RedZ
    Feb 3 '20 at 14:28

Most Qt modules are licensed under the LGPL, but some are available under only the GPL. The Qt Modules page lists the (currently) six modules in Qt 5 that are not available under the LGPL. Qt Charts is one such module not available under the LGPL. One the other hand, Qt SQL is available under the LGPL.

Your confusion over the "LGPL or GPL" language is understandable, and it is an ambiguity inherent in the English language. When we make the broad statement about Qt, "All Qt modules are available under the LGPL or GPL," we specifically mean, "For every module, it is the case that either the LGPL or the GPL applies to that module, but possibly not both -- some modules are not available under the LGPL." Conversely, the statement "The Qt SQL module is available under the LGPL or GPL," means that you may select either license.

This information is available in legally-rigorous language within the Qt project artifacts themselves. For example, one of the Qt SQL .h header file says:

** Commercial License Usage
** Licensees holding valid commercial Qt licenses may use this file in
** accordance with the commercial license agreement provided with the
** Software [...]
** GNU Lesser General Public License Usage
** Alternatively, this file may be used under the terms of the GNU Lesser
** General Public License version 3 [...]
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU
** General Public License version 2.0 or (at your option) the GNU General
** Public license version 3 [...]

This clearly indicates that the "or" mentioned in the documentation means that you may choose either license for Qt SQL.

  • 1
    100% answers every point in my question, thank you so much for the clarification.
    – RedZ
    Feb 3 '20 at 16:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.