Russian Qt Forum
Ноябрь 23, 2024, 07:03
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Model-View (MV)
>
Каким паттерном является Qt Model-View?
Страниц: [
1
]
2
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Каким паттерном является Qt Model-View? (Прочитано 11008 раз)
zzzseregazzz
Гость
Каким паттерном является Qt Model-View?
«
:
Сентябрь 25, 2013, 09:05 »
Есть паттерн Model-View-Controller. Но в документации по Qt про Controller ничего не сказано.
Где потерялся Controller?
Записан
Bepec
Гость
Re: Каким паттерном является Qt Model-View?
«
Ответ #1 :
Сентябрь 25, 2013, 09:20 »
Контроллером тут является делегат, насколько я понял, почитав статью на вики про M-V-C.
Model хранит данные.
View отображает.
Делегат позволяет изменять и манипулировать данными.
Записан
mutineer
Гость
Re: Каким паттерном является Qt Model-View?
«
Ответ #2 :
Сентябрь 25, 2013, 10:09 »
Контроллер тут размазан между view и model
Записан
Bepec
Гость
Re: Каким паттерном является Qt Model-View?
«
Ответ #3 :
Сентябрь 25, 2013, 10:10 »
View же ничего не изменяет. Это делает делегат как бы. Разве нет?
Записан
Old
Джедай : наставник для всех
Offline
Сообщений: 4350
Re: Каким паттерном является Qt Model-View?
«
Ответ #4 :
Сентябрь 25, 2013, 10:17 »
Контроллер полностью пишется пользователем, таких заготовок как Q...View и Q...Model просто не предусмотрено.
Записан
mutineer
Гость
Re: Каким паттерном является Qt Model-View?
«
Ответ #5 :
Сентябрь 25, 2013, 10:45 »
Цитата: Bepec от Сентябрь 25, 2013, 10:10
View же ничего не изменяет. Это делает делегат как бы. Разве нет?
Дефолтный делегат создается вьюшкой и спрятан от пользователя именно во вью. Я исходя из этого говорил
Записан
Bepec
Гость
Re: Каким паттерном является Qt Model-View?
«
Ответ #6 :
Сентябрь 25, 2013, 10:48 »
Ну тогда вердикт, что во View спрятан контроллер.
Записан
Old
Джедай : наставник для всех
Offline
Сообщений: 4350
Re: Каким паттерном является Qt Model-View?
«
Ответ #7 :
Сентябрь 25, 2013, 11:28 »
Цитата: Bepec от Сентябрь 25, 2013, 10:48
Ну тогда вердикт, что во View спрятан контроллер.
Делегат не является контроллером, в терминах данного паттерна.
«
Последнее редактирование: Сентябрь 25, 2013, 11:37 от Old
»
Записан
Bepec
Гость
Re: Каким паттерном является Qt Model-View?
«
Ответ #8 :
Сентябрь 25, 2013, 12:22 »
Old поясните пожалуйста, почему нет?
Модель (англ. Model). Модель предоставляет знания: данные и методы работы с этими данными, реагирует на запросы, изменяя своё состояние. Не содержит информации, как эти знания можно визуализировать. -
Q*Model
Представление, вид (англ. View). Отвечает за отображение информации (визуализацию). Часто в качестве представления выступает форма (окно) с графическими элементами. -
Q*View
Контроллер (англ. Controller). Обеспечивает связь между пользователем и системой: контролирует ввод данных пользователем и использует модель и представление для реализации необходимой реакции.
- При редактировании ячейки создаётся делегат, предоставляет ввод данных пользователю и -//-.
Пока не могу принять вашу точку мнения без аргументов.
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Каким паттерном является Qt Model-View?
«
Ответ #9 :
Сентябрь 25, 2013, 12:38 »
Простой пример - юзер хочет удалить строку (ф-ционал контроллера). Отсюда видно что никаким контроллером делегат не является
Записан
Bepec
Гость
Re: Каким паттерном является Qt Model-View?
«
Ответ #10 :
Сентябрь 25, 2013, 12:47 »
Невнятный пример, но смысл понял.
Часть функций контроллера имеются у делегата, но полностью он им не является.
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Каким паттерном является Qt Model-View?
«
Ответ #11 :
Сентябрь 25, 2013, 13:41 »
Цитата: Bepec от Сентябрь 25, 2013, 12:47
Невнятный пример, но смысл понял.
Если Вы поняли - то очень внятный
Записан
Bepec
Гость
Re: Каким паттерном является Qt Model-View?
«
Ответ #12 :
Сентябрь 25, 2013, 13:49 »
Не будем оценивать внятность примера по моей понятливости
Записан
Old
Джедай : наставник для всех
Offline
Сообщений: 4350
Re: Каким паттерном является Qt Model-View?
«
Ответ #13 :
Сентябрь 25, 2013, 14:47 »
Цитата: Bepec от Сентябрь 25, 2013, 12:22
Old поясните пожалуйста, почему нет?
Роль контроллера управлять моделью и видом: настроить отображение, сортировки/фильтры, добавление/удаление записей и т.д.
А делегат это по сути возможность более удобно настроить вид для конкретной задачи. Например, пользователю нужно иметь возможность редактировать данные прямо в таблице, но мы можем запретить такое редактирование в виде и открывать для этого диалог.
Записан
Bepec
Гость
Re: Каким паттерном является Qt Model-View?
«
Ответ #14 :
Сентябрь 25, 2013, 14:49 »
Благодарю за объяснение. Осознал.
Записан
Страниц: [
1
]
2
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...