Gyus, why you would not hire Uwe to improve QML/Qt/QQC1/QQC2?! :)
 
-- 
Best regards,
Aleksey
Linked in https://www.linkedin.com/in/alekseykontsevich
 
 
 
26.05.2018, 12:32, "Uwe Rathmann" <uwe.rathm...@tigertal.de>:

On Fri, 25 May 2018 22:35:58 +0200, Robin Burchell wrote:
 

 The first point I would make in reply, though, is
 that the convenience of creating code with a/b/c are going to be
 significantly better in my experience.


Code for d) look like this:
https://github.com/uwerat/qskinny/blob/master/examples/buttons/buttons.qml

IMHO the code for a/b would be very similar, the only one that requires
more work would be c as you need extra code for creating the button
itself.
 

 Let's take
 another good example from the top of my head: Item::anchors. Behind the
 scenes, it's implemented as a QQuickAnchors, which is a QObject. Let's
 turn it into a Q_GADGET, and we're done, right?


No, but please let's stay with gradients, where the answer is yes.

QSkinny offers this class to expose gradients to QML: https://github.com/
uwerat/qskinny/blob/master/src/common/QskGradient.h

Now when having an control with a property like this:

class MyRectangle : public QQuickItem
{
    Q_OBJECT

    Q_PROPERTY( QskGradient gradient READ gradient
        WRITE setGradient RESET resetGradient NOTIFY gradientChanged )

    ...
};

you can write your QML code this way:

MyRectangle
{
    gradient {
        orientation: "Vertical"

        stops: [
            { position: 0.0, color: "MediumAquamarine" },
            { position: 0.5, color: "..." },
            { position: 1.0, color: "DarkSeaGreen" },
        ]
    }
}

The equivalent code offered by Qt/Quick needs 4 QObjects - for each
instance of an item. So when having 100 rectangles these are 400 QObjects
- good for nothing.

Uwe

_______________________________________________
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development

_______________________________________________
Development mailing list
Development@qt-project.org
http://lists.qt-project.org/mailman/listinfo/development

Reply via email to