Здравствуйте!
У меня возникла проблема с регистрацией типа для использования с QVariant.
А именно мне необходимо зарегистрировать следующий класс:
class MYLIBSHARED_EXPORT MapItem
{
public:
enum Type {Root, Tab, Main, Depended};
MapItem(Type type = Root, MapItem* parent = 0);
~MapItem();
Type type;
MapItem* parent;
QList<MapItem*> children;
QVariant data;
};
Сразу после определения класса, я регистрирую класс с помощью Q_DECLARE_METATYPE:
Q_DECLARE_METATYPE(MapItem)
При сборке компилятор сообщает следующее:
...\qmetatype.h:-1: In static member function 'static int QMetaTypeId2<T>::qt_metatype_id() [with T = MapItem*]':
...\qmetatype.h:169: ошибка: 'qt_metatype_id' is not a member of 'QMetaTypeId<MapItem*>'
...\qmetatype.h:169: предупреждение: control reaches end of non-void function
Раньше, когда я регистрировал типы типа struct все было нормально. Это первый раз, когда я регистрировал класс.
Подскажите, если кто знает, в чем тут может быть дело?