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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Структура приложения, с главным окном, подобным mail-клиенту. Как лучше сделать?  (Прочитано 2861 раз)
xintrea
Супер активный житель
*****
Offline Offline

Сообщений: 754



Просмотр профиля WWW
« : Июнь 09, 2008, 16:47 »

Здравствуйте господа!

Делаю сейчас небольшое приложение на QT4. Главное окно состоит из трех областей, подобных любому классическому mail-клиенту. То есть состоит окно из

- Дерева папок (слева)
- Списка записей в текущей выбраной папке (справа сверху)
- Текста текущей выбраной записи (справа снизу)

Код:
+--------+---------------------+
| Дерево | Запись 1            |
| папок  |#Запись#2############|
|        | Запись 3            |
|        | Запись 4            |
|        +---------------------+
|        | Это текст записи 2  |
|        |                     |
|        | Всем привет! Вот    |
|        | такая запись        |
|        | с текстом           |
+--------+---------------------+

В данный момент реализовал дерево папок (считывается из XML файла в DOM, потом преобразуется в Item как в примере Editable Tree Model).

Теперь нужно каким-то образом при выборе ветки, содержащей записи, показывать список этих записей (справа сверху). Заголовки записей (название, дата создания, ссылка на файл) хранятся в том же XML дереве. А текст записей лежит в отдельном файле для каждой записи.

И вот вопрос - как лучше реализовать данную структуру на уровне объектов? Дерево планируется большое, записей много, ~50Мб текстовой информации, размер текста каждой записи ~20-50Кб текста в виде rich-форматирования.


Я планирую сделать так

Сейчас есть объект "model", включающий в себя ссылку на корневой Item-объект дерева папок. И есть куча Item-объектов дерева папок. Они храняться все время работы программы.

В классе Item-объектов дерева я сделаю еще одно свойство - ссылку на объект класса "tablemodel". Можно ли это сделать? Сможет ли вид отобразить такую модель с "лишними" свойствами? "Tablemodel" в свою очередь является моделью таблицы записей, хранимых в папке.

"Tablemodel" в свою очередь является моделью таблицы записей, хранимых в папке. При выборе папки, в которой есть записи, воткну соответсвующий объект "tablemodel" в вид таблицы записей (справа сверху). Ну и динамически подгружу текст первой записи, и покажу его справа внизу.


Правильна ли последовательность действий? Или в таком приложении надо делать структуру и взаимодействие объектов как-то по-другому? Просто я слабо занаю как C++ так и QT, и не хотелось бы переделывать проект из-за того, что изначально был выбран не тот подход к конструкции классов.
Записан

Собираю информацию по крупицам
http://webhamster.ru
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #1 : Июнь 09, 2008, 23:37 »

посмотри пример "интервью" (%QTDIR%\demos\interview), он правда сделан на основе QDirModel, но сходная идея.
Записан

Юра.
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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