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

Viktória Nemkin viktoria.nemkin at gmail.com
Fri Apr 29 13:04:20 CEST 2016


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/1e29fd00/attachment.html>


More information about the Interest mailing list