Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Определение типа.
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Система рисования. Печать
Trisch
На сцене(QGraphicsScene) имеются несколько QGraphicsItem, несколько из них унаследованные от QGraphicsItem и имеют тип MyItem.

Надо определить пересекающиеся MyItem.

Для этого используется функция QList<QGraphicsItem *> QGraphicsScene::collidingItems ( const QGraphicsItem * item, Qt::ItemSelectionMode mode = Qt::IntersectsItemShape ), но эта функция возвращает все итемы которые пересекаются. Можно ли среди полученных итемов найти MyItem?
Iron Bug
почитай про dynamic_cast. он возвращает NULL при преобразовании, если тип не совпадает.

P.S. кстати, тему надо перенести в вопросы по С/C++, к Qt это не имеет отношения.
Анна
В qt есть перегруженные qvariant_cast и qobject_cast. Правда, к этому надо ещё почитать про метаданные в qt.
Litkevich Yuriy
Цитата(Анна @ 10.7.2014, 14:16) *
В qt есть перегруженные qvariant_cast и qobject_cast. Правда, к этому надо ещё почитать про метаданные в qt.

Цитата(Iron Bug @ 9.7.2014, 17:34) *
почитай про dynamic_cast. он возвращает NULL при преобразовании, если тип не совпадает.

для наследников QGraphicsItem есть qgraphicsitem_cast

QGraphicsItem *gi = ...;
item = qgraphicsitem_cast<MyItem*>(gi)

но своего наследника ты должен был сделать следуя определённым правилам (задав тип) см. документацию
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.