[Interest] Clean way to define and categorize constants in QML

Kristoffersen, Even (NO14) Even.Kristoffersen at Honeywell.com
Fri Apr 29 13:12:52 CEST 2016


Those internal elements are not directly accessible.
You can try exposing them with the use of alias in the root object.


-Even

From: Interest [mailto:interest-bounces+even.kristoffersen=honeywell.com at qt-project.org] On Behalf Of Viktória Nemkin
Sent: 29. april 2016 13:04
To: interest at qt-project.org
Subject: [Interest] Clean way to define and categorize constants in QML

Hello!

What is a clean way to define and categorize constants in QML?

I have came up with this so far:

I have a QML singleton element, named Theme. There I keep a few constant things, like different background and font colors.

Theme.qml:

pragma Singleton

import QtQuick 2.0

QtObject {

    readonly property color backgroundRed: "#FF2510"

    readonly property color backgroundWhite: "#F0F0F0"

    readonly property color backgroundPurple: "#930083"

    readonly property color fontRed: "#FF1010"

    readonly property color fontWhite: "#F6F6F6"

}


When I want to use one of the colors I write:



color: Theme.backgroundRed


I don't like this approach. What I would like to be able to write is this:



color: Theme.background.red


I have tried adding nested QtObjects inside Theme but I could not get it working.



QtObject {

    QtObject {

        id: background

        readonly property color red: "#FF2510"

        readonly property color white: "#F0F0F0"

        readonly property color purple: "#930083"

    }



    QtObject {

        id: font

        readonly property color red: "#FF1010"

        readonly property color white: "#F6F6F6"

    }

}


When I run it like this, I get an error: Theme.qml: Cannot assign to non-existent default property.

Is there a way to accomplish this? Is there any clean way to define and categorize constants in QML?

Thank you,
Viki
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20160429/6cb30477/attachment.html>


More information about the Interest mailing list