Russian Qt Forum
Ноябрь 15, 2024, 16:24 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Downcasting  (Прочитано 4970 раз)
dware
Гость
« : Июнь 10, 2010, 17:24 »

Снова здравствуйте!)
Имеется класс ObjectItem:
Код:
class ObjectItem : public Item
в свою очередь
Код:
class Item : public QGraphicsItem
Получив первый выделенный объект со сцены:
Код:
scene->selectedItems().first()
хочу привести его к типу ObjectItem (добавлялся он на сцену именно как ObjectItem). Но
Код:
qgraphicsitem_cast<ObjectItem *> (scene->selectedItems().first()) 
использовать не могу(
как будет правильно?
Записан
BRE
Гость
« Ответ #1 : Июнь 10, 2010, 17:34 »

использовать не могу(
как будет правильно?
Так а как пытаешься использовать?

Код
C++ (Qt)
ObjectItem *item = qgraphicsitem_cast<ObjectItem *>( scene->selectedItems().first() );
if( item )
   item->use();
 
Записан
dware
Гость
« Ответ #2 : Июнь 10, 2010, 17:38 »

дело в том, что
qgraphicsitem_cast<ObjectItem *> (scene->selectedItems().first()) возвращает 0.
Записан
BRE
Гость
« Ответ #3 : Июнь 10, 2010, 17:39 »

дело в том, что
qgraphicsitem_cast<ObjectItem *> (scene->selectedItems().first()) возвращает 0.

А что возвращает:
scene->selectedItems().size()
Записан
dware
Гость
« Ответ #4 : Июнь 10, 2010, 17:44 »

единицу.
Записан
Kolobok
Гость
« Ответ #5 : Июнь 10, 2010, 17:46 »

Цитировать
T qgraphicsitem_cast ( QGraphicsItem * item )
Возвращает заданный item преобразованный к типу T если item является типом T; в противном случае возвращается 0.

Примечание: Чтобы заставить эту функцию работать корректно с собственными элементами, переопределите функцию type() для каждого собственного подкласса QGraphicsItem.
Записан
BRE
Гость
« Ответ #6 : Июнь 10, 2010, 17:47 »

Цитировать
T qgraphicsitem_cast ( QGraphicsItem * item )
Returns the given item cast to type T if item is of type T; otherwise, 0 is returned.

Note: To make this function work correctly with custom items, reimplement the type() function for each custom QGraphicsItem subclass.
То что написано в Note сделано?
Записан
dware
Гость
« Ответ #7 : Июнь 10, 2010, 17:55 »

эх... Type определил, а type() забыл Обеспокоенный спасибо!
а что за функция use(), кстати ?
Записан
BRE
Гость
« Ответ #8 : Июнь 10, 2010, 17:56 »

а что за функция use(), кстати ?
Использовать.  Улыбающийся
Записан
dware
Гость
« Ответ #9 : Июнь 10, 2010, 17:59 »

а, шутка)
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.168 секунд. Запросов: 21.