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....@qt-project.org] On 
Behalf Of Viktória Nemkin
Sent: 29. april 2016 13:04
To: interest@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
_______________________________________________
Interest mailing list
Interest@qt-project.org
http://lists.qt-project.org/mailman/listinfo/interest

Reply via email to