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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: QAbstractItemModel  (Прочитано 4984 раз)
demaker
Птица говорун
*****
Offline Offline

Сообщений: 960


Просмотр профиля
« : Август 29, 2013, 17:27 »

Возможно ли объекты различных классов, унаследованных от класса QObject,
запихнуть в одну модель, а затем отобразить в виде дерева.
Т.е.
Код
C++ (Qt)
class Top1: public QObject
{
}
class parentChild: public QObject
{
}
 
class Child: public QObject
{
}
Top1 objTop1;
parentChild objparentChild1,objparentChild2,parentobjChild3;
Child objChild3_1,objChild3_2;
 

Код:
objTop1
|_____
         |_objparentChild1
         |_objparentChild2
         |                |__objChild2_1
         |
         |
         |_objparentChild3
                           |___objChild3_1
                           |___objChild3_2
« Последнее редактирование: Август 29, 2013, 17:29 от demaker » Записан
mutineer
Гость
« Ответ #1 : Август 29, 2013, 17:33 »

Возможно. ты сам выбираешь какие данные возвращать из модели и как их достать из объекта. Или кастомный делегат написать можно
Записан
demaker
Птица говорун
*****
Offline Offline

Сообщений: 960


Просмотр профиля
« Ответ #2 : Сентябрь 02, 2013, 08:20 »

А можете хотя бы пример привести хоть какой-нибудь.
А то в экзамплах только пример с однотипными объектами.
Записан
Akon
Гость
« Ответ #3 : Сентябрь 02, 2013, 18:41 »

Так у вас объекты в известном смысле тоже однотипные - все они QObject'ы  Улыбающийся. Поэтому, можете пихать их в internalPointer индекса как QObject*, а дальше даункастить (qobject_cast, qdynamic_cast).
Записан
demaker
Птица говорун
*****
Offline Offline

Сообщений: 960


Просмотр профиля
« Ответ #4 : Сентябрь 03, 2013, 13:44 »

дальше даункастить (qobject_cast, qdynamic_cast).

Это как, я понимаю из какого-то класса QObject получить, но наоборот нельзя ведь
Записан
mutineer
Гость
« Ответ #5 : Сентябрь 03, 2013, 14:09 »

дальше даункастить (qobject_cast, qdynamic_cast).

Это как, я понимаю из какого-то класса QObject получить, но наоборот нельзя ведь

Почему нельзя? можно, если объект на самом деле того типа, к которому пытаешься привести
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4744



Просмотр профиля WWW
« Ответ #6 : Сентябрь 03, 2013, 14:10 »

можно. подобный трюк используется например для sender()'а.
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
demaker
Птица говорун
*****
Offline Offline

Сообщений: 960


Просмотр профиля
« Ответ #7 : Сентябрь 03, 2013, 14:38 »

 В замешательстве , хм Непонимающий
Вы уверены
Записан
Bepec
Гость
« Ответ #8 : Сентябрь 03, 2013, 14:41 »

До. Если QObject  каст вернёт не 0 - то это указатель на ваш класс, к которому преобразовывали Улыбающийся Если 0 - это не его потомок.
Записан
demaker
Птица говорун
*****
Offline Offline

Сообщений: 960


Просмотр профиля
« Ответ #9 : Сентябрь 03, 2013, 15:17 »

До. Если QObject  каст вернёт не 0 - то это указатель на ваш класс, к которому преобразовывали Улыбающийся Если 0 - это не его потомок.

Классика Улыбающийся
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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