[Interest] Using Q_NAMESPACE enum as a Q_PROPERTY type

Doogster thedoogster at gmail.com
Sat May 2 22:48:38 CEST 2020


I'm having trouble using an enum with Q_NAMESPACE, as a Q_PROPERTY type.

I'm trying to follow this:
https://www.kdab.com/new-qt-5-8-meta-object-support-namespaces/

I have the following enum:

-
namespace ConnectionState {

  Q_NAMESPACE

  enum class State : quint8 {Disconnected, Connecting, Connected};

  Q_ENUM_NS(State)

}
-

On another class I have:

-
Q_PROPERTY(ConnectionState::State connectionState READ connectionState
WRITE setConnectionState NOTIFY connectionStateChanged);
-

Trying to compile that gives me:

/usr/bin/ld: moc_controller.o:(.data.rel.ro+0x30): undefined reference
to `ConnectionState::staticMetaObject'

The getter, setter and signal are all defined. If I take out the
Q_PROPERTY declaration, then my code compiles, but then I don't have
the property to expose to QML.

What am I missing?


More information about the Interest mailing list