Здравствуйте, гость ( Вход | Регистрация )
kruger | Дата 27.10.2015, 12:52 |
а зачем ты к QObject * приводишь? Так ты из QVariant-а только указатель на QObject и сможешь вынуть. А как же виртуальное наследование и прочее? Это мысли в слух. Ты прав, поменяв с QObject на CMyStatus, стал получать валидный указатель, а до этого был 0x0, что странно!В qvariant_cast приведение происходит с помощью reinterpret_cast, а не dynamic_cast, тогда почему 0x0 в случае с приведением объекта к родителю и последующим прведением к QVariant? |
|
ViGOur | Дата 27.10.2015, 12:31 |
Тут всё намного проще чем кажется, просто после объявления твоего класса CMyStatus добавь строчку: И всё заработает! |
|
Litkevich Yuriy | Дата 27.10.2015, 12:25 |
Я его засовываю в QVariant таким образом: а зачем ты к QObject * приводишь? Так ты из QVariant-а только указатель на QObject и сможешь вынуть.QVariant::fromValue<QObject *>(pStatus); См. доку по T QVariant::value () const и void QVariant::setValue ( const T & value ) Этого достаточно |
|
kruger | Дата 27.10.2015, 10:51 |
У меня есть класс производный от QObject. Я его засовываю в QVariant таким образом:
Обратно пытаюсь перевести так: Но появляется такая ошибка:Цитата /usr/include/qt4/QtCore/qmetatype.h:169:80: error: 'qt_metatype_id' is not a member of 'QMetaTypeId<CMyStatus*>' static inline int qt_metatype_id() { return QMetaTypeId<T>::qt_metatype_id(); } Как правильно получить мой объект из QVariant? |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 29.3.2024, 1:50 |