![]() |
|
![]() ![]() ![]() |
|
Maledictus |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 99 Регистрация: 7.9.2008 Где: Республика Белару сь, Борисов Репутация: нет Всего: 1 |
Необходимо сохранить всю структуру QTreeWidget. Желательно в БД. Каким образом это можно сделать я не понимаю. В google не нашел решения проблемы. xml слабо подходит по причине возможность очень большого дерева и как следствие долгой загрузкой из xml
|
|||
|
||||
_GRIN_ |
|
|||
![]() одинокий падаван ![]() ![]() Профиль Группа: Участник Сообщений: 272 Регистрация: 18.11.2007 Где: Калуга Репутация: 6 Всего: 7 |
Maledictus, может быть не совсем в тему, но ...
при больших объёмах данных лучше использовать QTreeView вместо QTreeWidget. Данные всё время хранить в БД, а с виджетом связвать их через модель - например QSqlTableModel. -------------------- Дорогу осилит идущий |
|||
|
||||
ecspertiza |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 763 Регистрация: 3.11.2008 Где: г.Смоленск Репутация: 4 Всего: 5 |
Например вот
http://www.rsdn.ru/article/db/Hierarchy.xml но мне больше нравится и всегда использую вот этот вариант http://web-notes.ru/2005/01/nested_sets/ |
|||
|
||||
SABROG |
|
||||||
![]() Hacker ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2481 Регистрация: 18.9.2006 Репутация: 81 Всего: 91 |
Для QTreeWidgetItem есть перегруженный оператор у QDataStream. В базе нужно создать таблицу с 3-мя колонками:
Затем пробегаемся рекурсивно по дереву используя QTreeWidgetItemIterator и заполняем таблицу.
То есть это такое дерево:
Через оператор QDataStream & operator<< ( QDataStream & out, const QTreeWidgetItem & item ) сериализуем каждый итем в QByteArray применяя в качестве устройства QBuffer. Как записывать BLOB данные в базу думаю разберешься. Если в QTreeWidget больше одной колонки, то просто добавь дополнительные BLOB поля. |
||||||
|
|||||||
Maledictus |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 99 Регистрация: 7.9.2008 Где: Республика Белару сь, Борисов Репутация: нет Всего: 1 |
Очень благодарен за помощь. Сейчас пробую через модели реализовать это дерево, и через них думаю сериализовать все дерево в QByteArray и запихнуть в базу эту последовательность байтов.
Если есть какие-либо нарекания на предложенный мной способ, прошу озвучить. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С/С++: Кроссплатформенное программирование, 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. |