Russian Qt Forum

Qt => Вопросы новичков => Тема начата: minigo от Август 09, 2011, 15:31



Название: RTTI symbol not found for class 'QGraphicsPixmapItem'
Отправлено: minigo от Август 09, 2011, 15:31
Всем доброго времени суток.

Подскажите гуру. Существует наследник от QGraphicsPixmapItem, на котором множество таких же наследников от QGraphicsPixmapItem. В наследнике от QGraphicsScene переопределяю mouseDoubleClick - и в нём беру элемент черех itemAt на котором дважды кликнул. Но, так как у меня наследники хранят ещё кучу своих данных, мне необходимо привести объект к моему типу.  dynamic_cast - возвращает 0, static_cast - вот такую ошибку "RTTI symbol not found for class 'QGraphicsPixmapItem'". Может кто подскажет где может быть ошибка ?


Название: Re: RTTI symbol not found for class 'QGraphicsPixmapItem'
Отправлено: LisandreL от Август 09, 2011, 16:09
Вероятнее всего нет виртуальной.
1) Проверьте, что у вас в принципе включён RTTI ( например ссылку на любой объект в QObject, а затем каст обратно в исходный класс).
2) Покажите код какого-нибудь класса-наследника QGraphicsPixmapItem и его кастования.
3) Ну и на всякий случай версию библиотеки и компилятора и откуда его взяли.


Название: Re: RTTI symbol not found for class 'QGraphicsPixmapItem'
Отправлено: Sancho_s_rancho от Август 09, 2011, 18:20
Используйте
Код:
qgraphicsitem_cast


Название: Re: RTTI symbol not found for class 'QGraphicsPixmapItem'
Отправлено: LisandreL от Август 09, 2011, 18:46
Используйте
Код:
qgraphicsitem_cast
Оно реализовано через static_cast. Если static_cast не работает, то qgraphicsitem_cast врядли сработает.


Название: Re: RTTI symbol not found for class 'QGraphicsPixmapItem'
Отправлено: Sancho_s_rancho от Август 09, 2011, 23:20
Используйте
Код:
qgraphicsitem_cast
Оно реализовано через static_cast. Если static_cast не работает, то qgraphicsitem_cast врядли сработает.
Есть такое дело.
Я бы на код взглянул, а то ведь как бывает...