Qt News, May 2018 - December 2018
Another collection of Qt news, this time over the past six months from the last article . Releases 5.11 and 5.12, PySide reincarnation, Qbs sudden burial, Qt Design Studio release and a significant improvement in license conditions for startups.
I did not come up with an interesting KDPV, because instead of it just the DDPV - this was the summer when a photographer came to our office for a corporate photo session, from which I cropped a photo of a colleague.
Let's start with broken promises. At the end of the previous article, two votes were posted: for transferring a post from the official blog about porting Qt to microcontrollers and for writing a review of Safe Renderer , and a vote showed that both articles deserve publication. But the author refused to place the UFO microcontroller article: " Advertising publications outside the corporate blog and the hub“ I am promoting ”are prohibited by the site rules ”. It’s hard to say that it was exactly there that was adware ( you can see the English original and evaluate it ), but in that case there wasn’t even a sense to try Safe Renderer ( because it’s an exclusively commercial feature ). So forgive me if anyone waited.
Content for today:
- New releases
- Tool updates
- Kuesa Announcement
- PySide / Qt for Python Release
- Further porting to MCU
- Refusal of Qbs
- Changes in commercial licensing
- Other news
On May 22, Qt 5.11 was released .
I can not single out any particularly significant innovations, except for the revised QML compilation process, which should significantly improve the performance of Qt Quick applications:
Also in the release:
- High-DPI support for Qt Widgets on Windows ( previously it was only on Mac OS and Linux );
- support for compressed textures in Qt Quick ;
- preview of the implementation of the communication protocol OPC UA ;
- Qt for WebAssembly preview .
The Qt Remote Object release is an interprocess communication mechanism both on the same host and between different hosts on the network.
The Qt Quick WebGL release , also known as Qt WebGL streaming, is the ability to broadcast a GUI application running on a remote host ( device without a display ) and display it in a browser on a desktop or tablet. As an example, a Raspberry Pi with a camera, a Qt application streaming a GUI along with the output of a camera, and everything is rendered in an ordinary Safari on an iPad:
Very cool thing, I just played with delight with it, but frankly, I can not imagine who and why will use it. If this means working with a device from a browser, then why make a GUI on Qt Quick and stream it to WebGL? Isn't it easier then just to start a normal web server on the device, and the client GUI will be with HTML / CSS / JS without all this? Strange feature in general.
Pointer Handlers out of the status of a preview and renamed the Input Handlers . This is a new module for processing input from the mouse, keyboard and touchscreen. In this regard, at some point we should expect the "obsolescence" of the MouseArea .
In Qt for Device Creation, the so-called Qt Board Support Packages have appeared . These are the same Yocto images and toolchains, only now in the form of separately downloaded and connected packages to the installer. The meaning of QBSP is to support hardware vendors to make it easier for them to create and distribute Boot to Qt images for their devices.
Wayland support is developing .
Among the most significant innovations - support of the Language Server Protocol , that is, the possibility of extending Qt Creator to work with b about lshim number of programming languages. At the same time, the "native" QML is still not up to date with the latest versions of the modules for import, which is why they have to be sorted out by scientific typing.
In version 4.8, a telemetry module was also to be added , but it was not included in this release, so expect in 4.9.
The same semi-secret project :
As you know, Qt has a great tool for creating GUIs in Widgets - Qt Designer . You can work with it from Qt Creator ( Design tab ), or by running it as a standalone
.iufile application .
With the advent of Qt Quick, the Qt Quick Designer tool has been added , which can no longer be run as a separate application, as it is nailed to death with Qt Creator.
And here Qt Design Studio is the same Qt Quick Designer, but with additional functionality. It is also now a standalone application, although in fact it is just a crippled copy of Qt Creator, which runs immediately in Qt Quick design mode ( with the ability to switch to QML editing mode ).
From the new functionality: a timeline for working with animations, convenient dialogs for setting up these animations and a live-preview component for previewing changes on the fly, both in a separate window and on an attached tablet or other device. It is noteworthy that all these things are unlikely to ever fall back into Qt Quick Designer.
Qt Design Studio is designed for designers, and it is assumed that they will create an application design in it, transfer the result (
.ui.qmlfiles ) to the developers, and the developers will work with them in the full Qt Creator.
Also, plug-ins are being developed for existing popular design tools, so that designers can export their work from these tools to QML. The first was created plug-in for Adobe Photoshop , the next is expected plug-in for Sketch , then Adobe XD and others.
I am not a designer, because it is difficult for me to evaluate the usefulness of Qt Design Studio. When Qt had only Widgets, I worked with Qt Designer with ill-concealed pleasure, it is a great GUI tool to this day. When Qt Quick appeared, I tried to use Qt Quick Designer several times, but in the end I quit and just write QML, which is more convenient and faster for me. And since Qt Design Studio is almost like Qt Quick Designer, I personally will hardly use it. At the same time, as far as I know, a number of design agencies that have received a “test drive” from Qt Design Studio speak positively about it.
In terms of licensing, the tool is sort of like stated in Open Source ( GPLv3 ), but at the same time it seems like a commercial license is required to distribute the results of the work. Yes, and simply download the installer is not so easy, you need a Qt Account . In general, product managers have not yet fully decided.
The most significant change is the transition from the original NVIDIA DRIVE Design Studio engine to its own Qt 3D-based engine and a significant performance improvement .
The plan for combining Qt 3D Studio and Qt Design Studio into a single tool was also indicated, that is, instead of two, this would be one application for working with 2D and 3D.
Speaking of 3D, here KDAB released their solution for working with 3D - Kuesa .
Unlike Qt 3D Studio, they did not waste resources on their own 3D modeling tool, but allow designers to work with their usual tools ( 3DS Max, Blender ), and then the developer can use exported glTF models in Qt. For convenience, there is also an application for previewing the model and the names of the components so that the developer knows how to access them in his code, without opening the model in the original 3D editor.
In my opinion, Kuesa is a competing solution to Qt 3D Studio ( and apparently more successful ), and this is annoying, because instead of doing the same thing in parallel, these efforts could be spent on something more useful ( I now not necessarily about KDAB ). By the way, it will remind you that Qt 3D itself is also a KDAB contribution .
I can hardly tell something new here. As before, PySide is the ability to use Qt ( mainly for GUI ) from Python. It is distributed via PyPI , that is, it is not included in the Qt installer, and is installed separately via
pip. Support for embedded platforms is not yet available, although it is planned.
There is no list of differences from PyQt , although the developers assure that PySide is almost in no way inferior, and soon it will also be superior. From the point of view of commercial licensing, with PySide "all inclusive" in the price of a Qt license at no extra charge, and with PyQt you still have to pay at Riverbank; in terms of Open Source, PySide is available under both GPLv3 and LGPLv3, while PyQt is available only under GPLv3.
Work is continuing on porting Qt to the microcontroller-level hardware. In addition to RTEMS , FreeRTOS ( which began to look a little better after Amazon added some support for POSIX ) and uClinux were tested , and for now the conclusion is that we still recommend RTEMS.
In short: the development of Qbs stops, although another release will be released, support will end at the end of 2019, qmake will remain, but in the future ( Qt 6 ) the transition will be made to CMake as the main build system.
The post collected two hundred comments (a record for our blog ), and would have collected more, but comments on posts are automatically closed two weeks after publication. Here there still there are comments in Russian.
Omitting the technical reasons for the decision, the main disturbance caused by the fact that the community asserted a few years about how Qbs is beautiful and what is a step forward, not to mention the assurances that this will be the official build system in Qt 6 and all have on it to pass ( and the people still started to move ), and then suddenly Qbs closes with such a fast jack.
Commercial license agreement updated to version 4.1. An appendix with listing of licensed / distributed software was added.
The license conditions for startups have significantly improved : firstly, it is no longer discounted, but generally free , and secondly, components from Device Creation are also available ( ready-made Yocto Linux-based images, cross-compilation tools, etc.) e. ), however, to distribute products-devices, runtime will still need to be bought (the logic is that if you have money for hardware, you should also find it on runtime ).
The license for startups is issued for a year and can then be extended for another year. Legally, this is a full-fledged commercial license without the need to comply with the requirements of the GPL / LGPL. After the first year ( or two ), it turns into a regular license at full price.
Startup licenses have the following restrictions:
- The company's annual income must be less than $ 100,000, otherwise you will not qualify as a startup;
- You can get licenses for up to 3 developers;
- technical support is severely curtailed: 5 tickets per month and low priority in the queue.
By the way, it is possible that your application for a start-up license will be considered just by the girl on the cover of the article.
Coming update application icons:
How do you? Me too. And most importantly, whence again this need for redesign, not so long ago there was already one, and quite good one.
The Forrester company conducted a study in which it studied the impact of Qt on the business, all kinds of ROI indicators there and so on. It seems like this should help companies assess the benefits of Qt and decide on the acquisition of a commercial license. There is even an online calculator for calculating saved parrots.
On this with the news for now everything, the next issue will be somewhere in May or how enough material will be gathered.