[Development] Request qtquickdesigner-components as Qt 6 addon

Shawn Rutledge Shawn.Rutledge at qt.io
Thu May 5 18:50:32 CEST 2022

On 2022 May 5, at 16:23, Thomas Hartmann <Thomas.Hartmann at qt.io<mailto:Thomas.Hartmann at qt.io>> wrote:


I would like to request the inclusion of a new module to Qt 6 as an add-on:

Name of the repository: qt-labs/qtquickdesigner-components
Description: Module for Qt Design Studio specific QML items
Responsible person: Thomas Hartmann
Gerrit user/email: thomas.hartmann at qt.io<mailto:thomas.hartmann at qt.io>

The module is already on gerrit and is in a mature state by now.
The qtquickdesigner-components are part of Qt Design Studio and are typically
used by projects created in Qt Design Studio.

I request adding the module to Qt 6 releases as an addon.

The module provides components that make it easier to create QML using tooling. This includes
easy-to-use geometrical shapes like Arc, Triangle, and Hexagon and a more powerful
rectangle. The module also contains the FlowView which makes it easy to define screen
transitions and it contains building blocks to define logic in declarative QML
and compatibilities items for Qt for MCU and Qt for Automotive.

Currently, developers have to build the module manually, if they want to build a Qt Design
Studio project against Qt. Having the qtquickdesigner-components as an add-on as part of Qt 6
would make their life easier.

I’ve always hoped these are just a stopgap until we get around to improving Qt Quick enough that you no longer need them. E.g. yes we know that Rectangle needs to support different radii on different corners: QTBUG-48774<https://bugreports.qt.io/browse/QTBUG-48774>, and yes I still want to do that ASAP: same status for quite a few years now (which is embarrassing). I suspect it won’t be too hard, but nobody got around to it yet.  And Shapes are very general, you could do almost anything with them; but they don’t have vertex antialiasing like Rectangle does, because we don’t have a version of qTriangulate() that generates “feathered edges” for any arbitrary QPainterPath, because that’s hard to get 100% right all the time.  So with Shapes, you get AA via MSAA (by setting layer.samples), and that’s not particularly cheap (reputedly pretty bad on some GPU architectures).

If you use QPainter, it’s slow.  If you use custom shaders, OpenGL shaders are not portable; but maybe you ported to RHI? And custom shaders break batching in the batched scene graph renderer, which is why plain Qt Quick uses so few types of shaders, to get as many nodes into each batch as possible, to have bigger batches and fewer draw calls.  But that limitation has always bothered me too; computers and cell phones have had fairly powerful GPUs for so long now, and we are holding ourselves back for the sake of supporting low-end embedded devices.  Even so… there’s something to be said for keeping this basic 2D stuff as efficient as humanly possible, because it saves battery life and keeps your GPU available for the visualizations that really need it.

Anyway yes please, let's make the source code more readily available; +1 from me.  This sounds like typical Qt.labs material.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/development/attachments/20220505/70c2a31d/attachment.htm>

More information about the Development mailing list