[Qt-interest] qRegisterMetaType and namespaces
Andre Somers
andre at familiesomers.nl
Wed Sep 2 11:20:45 CEST 2009
Hi,
I must be missing some simple...
I am working on a set of classes that have been wrapped in a namespace.
Contained within this namespace is an enum type, that is then used with
Q_DECLARE_FLAGS to create a nice set of flags. I am thus ending up with
a SelectionPolicyFlags type.
One of the classes has Q_PROPERTY defined of that type. I know that in
order to make this work, I need to call Q_DECLARE_METATYPE for this
type, outside the namespace itself. That works. However, I also need to
call qRegisterMetaType<SelectionPolicyFlags>() for them to be usefull in
the Qt property system (and in queued signal/slots). It is there I am
running in to a problem. While the registering itself seems to work (I
have inserted a debug statement that outputs the type id that is
assigned), actually using it in the property does not. When trying to
access the property, I am getting the following output:
QMetaProperty::read: Unable to handle unregistered datatype
'SelectionPropertyFlags' for property
'PropertyEditor::PropertyEditor::selectionPolicy'.
Notice that there is a class PropertyEditor inside the namespace
PropertyEditor.
I have made sure that the qRegisterMetaType is executed first by putting
this in the header:
inline int init() {
qDebug() << qRegisterMetaType<SelectionPolicyFlags>();
return 0;
}
static int property_editor_init_dummy = init();
I am a bit lost here. How can I make use of my flags with the Qt
Property system?
André
More information about the Qt-interest-old
mailing list