Qt 5.7 Consolidates Open Source, Commercial Versions Under New Licensing

The Qt Company has released a new version of its namesake C++ cross-platform app dev tool, featuring new licensing that consolidates the open source and commercial versions of its Qt for Application Development offering.

"Qt has always been available as Free Software, and will continue to be so in the future," the company's Lars Knoll said in a blog post last week announcing Qt 5.7. "Qt is being developed as an open source project, The Qt Company is fully committed to this, and in addition, the agreement with the KDE Free Qt Foundation legally ensures this.

"With Qt 5.7, we are slightly adjusting our licensing of the Open Source version to bring it more in line with the philosophy of the Free Software movement. From this version onwards, Qt will not be available under LGPL version 2.1 anymore. Instead, Qt will be licensed under two main licenses: LGPL version 3 (and GPL version 2) for all almost all frameworks and libraries, and GPL version 3 for our tools like e.g. Qt Creator. In addition, we're open sourcing some formerly closed Qt add-ons and tools under GPL version 3."

Now, developers using Qt 5.7 get exactly the same content in the open source and commercial versions of Qt for Application Development, Knoll said. "This means that all the parts of Qt for Application Development that previously have been available only to commercial users are now available in the Open Source package as well," he said.

The Qt Virtual Keyboard Is Now Available under a GPL License
[Click on image for larger view.] The Qt Virtual Keyboard Is Now Available under a GPL License (source: The Qt Company)

The commercial version of Qt, with official support and other perks, starts at $79 per month. Qt lets developers target Windows, Linux, OS X, Android, iOS and Windows 10 platforms with one codebase developed with C++ and proprietary extensions. The company claims some 1 million developers around the globe use its software, which in 2014 was ranked as the No. 1 cross-platform app dev tool by one research company.

Coming only three months after the release of version 5.6, the new Qt 5.7 also sports some functionality changes, along with bug fixes and performance enhancements.

For example, a new 3D module that has been available as a technology preview in previous releases is now fully supported. "Qt 3D provides you with a 3D engine, that comes with both C++ and QML APIs," Knoll said. "It makes it a lot easier to embed and handle 3D content within Qt Applications. In general, Qt 3D is much more than just a renderer, it serves as an extensible 3D framework for all kind of simulations. "

The new Qt edition also fully supports the company's new QML-based Quick Controls, a library of UI components. They were designed for optimal performance and memory consumption, making them especially useful for mobile development, the company said.

Existing modules have seen their functionality improved also, Qt said, such as Qt Core, Qt Gui, Qt QML and Quick, Qt WebEngine and Qt NFC. Qt for Device Creation -- the counterpart to Qt for Application Development -- was also improved.

Knoll also noted that the company is further embracing C++11. While developers have been able to use Qt with compilers compliant with C++11, the company didn't follow that practice in all of its internal development efforts.

"Starting with Qt 5.7, we will require a C++11 compliant compiler to build and use Qt," Knoll said. "This allows us to use many of the new features in Qt itself, and renew our codebase using features such as constexpr, move semantics, range-for and auto. These efforts are well under way and will continue throughout the next versions."

The company explained more about the new support of modern C++ in a news release. "Qt is the framework for all C++ development and allows developers to harness the power of C++ with the convenience of high-level Qt libraries," The Qt Company said. "As C++ is moving forward with the C++11, C++14 and upcoming C++17 standards, Qt is following the progress closely. It has been possible to use modern C++ already with Qt but with the latest release, Qt 5.7 also leverages C++11 directly within the Qt libraries. This allows Qt developers to better harness the modern C++ features but also improves the quality and performance of the Qt libraries."

More details about the new release of the 21-year-old software tool are available here.

About the Author

David Ramel is an editor and writer for Converge360.