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

Dmitry Volosnykh dmitry.volosnykh at gmail.com
Fri Apr 29 13:10:54 CEST 2016


Using such approach you have to write something like readonly property
QtObject backgroundColor: QtObject { ...

On Fri, Apr 29, 2016 at 2:04 PM Viktória Nemkin <viktoria.nemkin at gmail.com>
wrote:

> 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 at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/interest
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20160429/71b90a69/attachment.html>


More information about the Interest mailing list