crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Определение типа.
Trisch
  опции профиля:
сообщение 9.7.2014, 13:11
Сообщение #1


Активный участник
***

Группа: Участник
Сообщений: 379
Регистрация: 30.1.2012
Из: Запорожье
Пользователь №: 3169

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




Репутация:   0  


На сцене(QGraphicsScene) имеются несколько QGraphicsItem, несколько из них унаследованные от QGraphicsItem и имеют тип MyItem.

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

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


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

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




Репутация:   12  


почитай про dynamic_cast. он возвращает NULL при преобразовании, если тип не совпадает.

P.S. кстати, тему надо перенести в вопросы по С/C++, к Qt это не имеет отношения.

Сообщение отредактировал Iron Bug - 9.7.2014, 14:42
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Анна
  опции профиля:
сообщение 10.7.2014, 11:16
Сообщение #3


Активный участник
***

Группа: Участник
Сообщений: 276
Регистрация: 22.5.2008
Из: Зеленоград
Пользователь №: 181

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




Репутация:   4  


В qt есть перегруженные qvariant_cast и qobject_cast. Правда, к этому надо ещё почитать про метаданные в qt.

Сообщение отредактировал Анна - 10.7.2014, 11:16
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 21.7.2014, 23:14
Сообщение #4


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

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




Репутация:   94  


Цитата(Анна @ 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)

но своего наследника ты должен был сделать следуя определённым правилам (задав тип) см. документацию
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




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