![]() |
|
|
![]()
|
|
| evilguard |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 19.11.2006 Репутация: нет Всего: нет |
Реализую модель, от QAbstractItemModel - брал из стандартного примера. Там реализуется наследник от этого класса а также класс элемента с данными(допустим TreeItem). Каждый элемент содержит в себе QList<TreeItem*>children - список указателей на детей. Для реализации того поведения которое я хочу мне нужно было выделить отдельный подкласс этого класса, чтобы он вел себя как папка(директория) - а из TreeItem убрать возможность добаления "детей". Я унаследовал от TreeItem класс TreeFolderItem, соответственно из TreeItem убрал члена QList<TreeItem*>children, а также все функции связанные с возможностью манипулировать дочерними эжлементами. Соответственно в классе модели поменял во всех местах, где есть операции с детьми - на TreeFolderItem, при этом он наследует интерфейс TreeItem.
Но программа почему-то не заработала, вылетала после добавления одного этлемента в модель. Когда убрал класс потомок, и вернул весь функционал связанный с "детьми" в класс TreeItem все стало нормально. Посему вопрос - получается модель не поддерживает хранения элементов разных классов, но реализованных с общим интерфейсом? |
|||
|
||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Наверно эту часть никто не читает, когда тему создает:
Т.е. я бы сначала разобрался в каком месте происходит краш, использую дебаггер, прежде чем думать, что Qt не поддерживает что-то. |
|||
|
||||
| evilguard |
|
||||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 52 Регистрация: 19.11.2006 Репутация: нет Всего: нет |
да, я прочел уже))
Добавлено @ 16:01 в обществе дебаггера я провел сегодня пол-дня Если запускать в режиме дебага в KDevelop - он выкидывает меня на файл qlist.h: http://ipicture.ru/uploads/080322/CI6F2VgPda.png Помогите заодно разобраться - что означает это - там красный кругляшок и зеленый треугольник - где произошла ошибка, я не пойму. Это сообщение отредактировал(а) evilguard - 22.3.2008, 16:03 |
||||||||
|
|||||||||
| nickless |
|
|||
![]() Гентозавр ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2976 Регистрация: 29.8.2005 Где: Germany Репутация: 13 Всего: 181 |
А стандратные QDir и QDirModel не подходят? Это уже скорее всего следствие предыдущих ошибок, надо смотреть что происходило раньше. -------------------- ![]() Real men don't use backups, they post their stuff on a public ftp server and let the rest of the world make copies - Linus Torvalds |
|||
|
||||
| SABROG |
|
|||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Для теста можно убрать из класса все лишнее и оставить только пустой конструктор и деструктор и попытаться добавить указатель на такой класс в QList.
|
|||
|
||||
![]()
|
| Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |