[Development] Enumerations in QML

Knoll Lars Lars.Knoll at digia.com
Tue Dec 11 14:17:19 CET 2012

On Dec 11, 2012, at 4:47 AM, Alan Alpert <416365416c at gmail.com> wrote:

> People keep asking for enumerations in QML. See QTBUG-15483 and
> QTBUG-14861, both assigned to old Nokia identities (so don't trust
> that 'in progress' ;) ). Now I don't know when these issues will be
> resolved, but there's an important discussion to have before it can
> even be scheduled: What would proper enum support look like in QML?
> QTBUG-15483 suggests 'property Bar::Weather weather: Bar.Sunny', for
> using the C++ 'enum Weather { Raining, Sunny, Cloudy }'. But
> QTBUG-14861 does not include a suggestion of what the QML syntax for
> declaring an enum should be (just a suggestion for how we could hack
> it in there). It's totally not obvious to me what a good QML API for
> declaring enums would be, and that could have run-on effects on how
> they're used in property declarations. All we know is that Bar.Sunny
> is how you use the enum exposed from C++, and that will need to
> continue to work with QML defined enums. Note that "property
> Bar::Weather weather" is just a suggestion as well, I actually suspect
> "property Bar.Weather weather" would fit in better (but it depends on
> how you declare them).

I'd prefer:

Item {
	enum Weather { Raining, Sunny, Cloudy }

	property Weather weather: Weather.Sunny;

Since enum is already a reserved keyword in Ecmascript this should be doable without problems.

If the enum is declared in a different context, the property declaration should IMO be 

OtherItem {
	property Bar.Weather weather: Bar.Weather.Sunny;


> What should enumeration declarations in QML look like?
> --
> Alan Alpert
> _______________________________________________
> Development mailing list
> Development at qt-project.org
> http://lists.qt-project.org/mailman/listinfo/development

More information about the Development mailing list