Version 1.2

Presentation: Native Desktop Styling Support for QtQuick Controls 2

Ongoing work at TQtC to support writing desktop applications using QtQuick Controls 2

Event large

At The Qt Company we have an ongoing project in the UI team to improve the support for writing desktop applications using QtQuick Controls 2. The long term goal is to bring Controls up to the same level as, or better than, Qt Widgets in terms of available controls, API, and styling. In this talk I will present which ideas we have at The Qt Company in this area for the next few years, and the initial work done for Qt-6.0 to realize it.

QtQuick Controls 2 was from the start primarily written for applications in the embedded and mobile space. While it’s fully possible to write applications for the desktop as well using Controls 2, it lacks some important features that for some will make Qt Widgets the only viable alternative when targeting desktop. This includes, among other things, desktop centric controls, native menus, pop-ups and dialogs, and native styling.

At The Qt Company we have laid out a five year long plan to close the gap between Controls and Widgets. And we have started this year, as an initial step, to port QStyle to Controls, and remove all dependencies to Widgets in the new port. This means that we are not touching QStyle in Widgets, but have chosen to leave it as-is, to have the freedom to change and optimize the new port, and at the same time, avoid regressions and API breakages in Widgets.

We use the new QStyle port as a starting point to implement native looking desktop styles in Controls that follow the same styling API and rules that Controls already have. We are currently working on styles for macOS, Windows and Fusion, and all three will be available for Qt-6.0. In this talk I will elaborate more around our plans for the future in this area, and show a demo of the current progress.


Day: 2020-09-05
Start time: 17:30
Duration: 00:30
Room: Room 1
Track: Technical



Click here to let us know how you liked this event.

Concurrent Events