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

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


Thank you for your help. The syntax for creating a named object property is
what I needed.

Regards,
Viki

On 29 April 2016 at 13:12, Kristoffersen, Even (NO14) <
Even.Kristoffersen at honeywell.com> wrote:

> 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/68719a20/attachment.html>


More information about the Interest mailing list