Здравствуйте, гость ( Вход | Регистрация )
|
explorer85 |
3.8.2011, 19:12
Сообщение
#1
|
|
Студент ![]() Группа: Новичок Сообщений: 12 Регистрация: 18.3.2011 Пользователь №: 2517 Спасибо сказали: 0 раз(а) Репутация: 0
|
ЗАДАДЧА.
Исходные данные: Есть две сущности 1. Задача 2. Проект Эти сущности можно добавлять в списки QVector <Task> tasks; QVector <Project> projects; Причем при добавлении Задачи в tasks мы указываем ей ProjectID что указывает на ее принадлежность к проекту с таким же ProjectID при добавлении Проекта в projects мы указываем ему ProjectID. Таким образом получается иерархическая связь на верхнем уровне проекты на нижнем уровне задачи. У одного проекта может быть несколько задач. Задача одновременно может находится только в одном проекте. НУ вобщем я думаю понятно двухуровневое дерево получается проекты родители, задачи дети. ----------------------------------------------------------- Необходимо реализовать GUI для работы со списками этих сущностей. ----------------------------------------------------------- Реализовать интерфейс ввода необходимо следующим образом, в двух видах: 1. Двухуровневое дерево проектов и задач. Проект1 Задача 1 Задача 2 Проект2 Задача 3 Без проекта Задача 4 Здесь можно добавить проект, удалить проект, отредактировать проект Здесь можно добавить задачу к проекту, удалить задачу из проекта, отредактировать задачу. Проект "Без проекта" отредактировать и удалить нельзя (он создается приложением автоматически чтобы было куда добавлять задачи во втором виде) 2. Список задач. Задача 1 Задача 2 Задача 3 Задача 4 Здесь можно добавить задачу, отредактировать задачу, удалить задачу При создании задачи в этом виде она попадает в проект "Без проекта" Вопрос как это сделать с помощью mvc фреймворка qt?????? PS: Сразу скажу я эту проблему решил но на свой взгляд криво, и не уверен в правильности решения, и некоторые вещи у меня не работают. PPS: Если кому интересно выложу здесь свои свои решения у меня их 2 одно реализовано криво другое не реализовано есь только идея. PPPS: Очень надеюсь на помощь людей которые считают себя реально прокаченными в MVC ...и вообще всех homosapiens)) |
|
|
|
![]() |
|
explorer85 |
3.8.2011, 20:04
Сообщение
#2
|
|
Студент ![]() Группа: Новичок Сообщений: 12 Регистрация: 18.3.2011 Пользователь №: 2517 Спасибо сказали: 0 раз(а) Репутация: 0
|
И так мое первое решение реализованное.
Создается экземпляр данного класса. После этого создаютя две модели производные от QAbstractItemModel, в эти модели передается указатель на экземпляр Storage Модель #1: строится по правилам модели списка (использует только tasks) и отображает их на QListView Модель #2: строится по правилам модели дерева (использует projects - верхний уровень родители, tasks - нижний уровень дети) и отображает их на QTreeView) В кажой модели по одному столбцу все данные из структур Task и Project передаются юзерролями, и обрабатываются кастомными делегатами. Пользователь может пользоваться одновременно только дним из представлений (добавлять, удалять, редактировать) строки(задачи и проекты) ПРОБЛЕМА!!! Данные в моделях и представлениях не синхронизируются между собой!!! НАПРИМЕР!!! Добавляем в виде №2 (дерево) строку(задачу) : делаем в модели №2 данные добавляются в QVector <Task> tasks; модель №2 уведомляется о том что данные добавились а вот модель и представление №1 НИЧЕГО ОБ ЭТОМ НЕ ЗНАЮТ ПОЭТОМУ ПРИ ПЕРЕХОДЕ К ВИДУ №2 мне приходится делать reset() что неправильно я думаю но другого выхода не вижу вот схема моего варианта, там еще 2 прокси модели для сортировки данных ![]() А вот схема моего второго варианта, если вкратце то мы исползуем не 2 независимые модели, а модель дерева как основную потому что в ней есть все данные и задачи и проекты, а для представления задач списком используем прокси модель, но тут тоже проблема я не знаю как из модели дерева через прокси сделать модель списка и вообще возможно ли это? Вобщем друзья выручайте желательно конкретными советами и с аргументированной критикой моих решений или наоборот! Всем зараннее большое спасибо!!! ![]() |
|
|
|
explorer85 Очень интересная проблема проектирования 3.8.2011, 19:12
Алексей1153 explorer85, привет!
за работу с моделью подск... 4.8.2011, 7:28
explorer85 Алексей1153, спасибо за совет да с мапами пологичн... 4.8.2011, 9:34
Алексей1153 explorer85, мне тут вот что непонятно: массивы инк... 4.8.2011, 10:06
explorer85 Цитата(Алексей1153 @ 4.8.2011, 11:06) exp... 4.8.2011, 10:24
explorer85 В том то и дело что я не могу врубиться как органи... 4.8.2011, 10:32
Алексей1153 explorer85, да, видимо я что-то не понимаю. Послеж... 4.8.2011, 10:27
Алексей1153 проблема описана очень ясно и крупно:
ЦитатаПРОБЛ... 4.8.2011, 10:48
explorer85 Цитата(Алексей1153 @ 4.8.2011, 11:48) по ... 4.8.2011, 11:23
Алексей1153 ЦитатаХотя интересно как там сделано))
да очень пр... 4.8.2011, 11:30
explorer85 Спасибо за ответы, но просто для всего что вы опис... 4.8.2011, 12:14
PAFOS Для начала я бы сделал одну модель и два представл... 5.8.2011, 13:53![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 16.12.2025, 1:01 |