crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Перевести QVariant обратно в мой указатель на объект
kruger
  опции профиля:
сообщение 27.10.2015, 10:51
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 15
Регистрация: 6.10.2015
Пользователь №: 4459

Спасибо сказали: 0 раз(а)




Репутация:   0  


У меня есть класс производный от QObject.
Я его засовываю в QVariant таким образом:
QVariant::fromValue<QObject *>(pStatus);

Обратно пытаюсь перевести так:
CMyStatus *pObj = qvariant_cast<CMyStatus *>( var );
Но появляется такая ошибка:
Цитата
/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?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
kruger
  опции профиля:
сообщение 27.10.2015, 12:52
Сообщение #2


Студент
*

Группа: Новичок
Сообщений: 15
Регистрация: 6.10.2015
Пользователь №: 4459

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Litkevich Yuriy @ 27.10.2015, 12:25) *
а зачем ты к QObject * приводишь? Так ты из QVariant-а только указатель на QObject и сможешь вынуть.
А как же виртуальное наследование и прочее? Это мысли в слух. Ты прав, поменяв с QObject на CMyStatus, стал получать валидный указатель, а до этого был 0x0, что странно!
В qvariant_cast приведение происходит с помощью reinterpret_cast, а не dynamic_cast, тогда почему 0x0 в случае с приведением объекта к родителю и последующим прведением к QVariant?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.4.2024, 2:14