Форум вопросов и ответов

Форум вопросов и ответов (https://www.otvetnemail.ru/)
-   Новый архив 3 (https://www.otvetnemail.ru/novyj-arhiv-3-813/)
-   -   QGraphicsScene - как реализовать базовых указателей и доступ к ним? (https://www.otvetnemail.ru/novyj-arhiv-3-813/qgraphicsscene-kak-realizovat-bazovyh-ukazatelej-i-dostup-k-nim-258509/)

Guest 28.09.2011 17:40

QGraphicsScene - как реализовать базовых указателей и доступ к ним?
 
Приветствую!В моем случае на сцене хранится набор указателей на элементы, наследованные от QGraphicsItem.Необходимо пробегаться и приводить к реальным типам.Как быть?Код таков (тестовый поэтому корявый)Код: QList::iterator it = m_scene->items().begin(); bool _b = false; for (; it != m_scene->items().end(); ++it) { _b = !_b; QGraphicsItem* _item = *it; Chip* _chip = dynamic_cast(_item);// Chip* _chip = static_cast(_item); if(_b) _chip->changeColor(); else _chip->restoreColor(); }Вываливается вот такая ошибкаЦитировать---------------------------Получен сигнал---------------------------Приложение остановлено, так как оно получило сигнал от операционной системы.Сигнал: SIGSEGVНазначение:Segmentation fault---------------------------Метод dynamic_cast выдает ошибку сегментирования прямо в момент примененияМетод static_cast проходит, но ошибка вываливается в кодеКод:void Chip::changeColor(){ m_even = true;}Как быть? Как приводить типы? И как красиво итерировать? Может я не так делаю???


Часовой пояс GMT, время: 20:29.


© www.otvetnemail.ru - Форум вопросов и ответов.