Russian Qt Forum
Ноябрь 23, 2024, 07:47
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Model-View (MV)
>
Совет по дизайну. Две модели для данных
Страниц:
1
[
2
]
3
4
5
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Совет по дизайну. Две модели для данных (Прочитано 33528 раз)
vizir.vs
Гость
Re: Совет по дизайну. Две модели для данных
«
Ответ #15 :
Сентябрь 22, 2014, 15:14 »
Цитата: Vyacheslav Yurkov от Сентябрь 22, 2014, 14:50
Цитата: vizir.vs от Сентябрь 22, 2014, 14:39
Модель ни чего не знает о количестве столбцов, будет ли это таблица, или график, или еще что-нибудь. У нее есть данные, а вьювер эти данные уже отображает. В твоем случае, например, у тебя есть массив из 32 чисел. Хекс должен этот массив интерпретировать как таблица из 16 столбоцов, а бин - как таблица из 8 столбцов. Модель на таблицу ни как не влияет. Может ты захочешь сделать еще один вьювер хекс-бин, который будет отображать в виде графика.
Ну так вот этот-то метод в модели
http://qt-project.org/doc/qt-4.8/qabstractitemmodel.html#columnCount
, а не во view.
Можно немного поподробнее, пжлста, как мне объединить эти 2 модели в одну.
Храни в моделях указатель на данные.
Записан
UVV
Гость
Re: Совет по дизайну. Две модели для данных
«
Ответ #16 :
Сентябрь 22, 2014, 15:19 »
Цитата: vizir.vs от Сентябрь 22, 2014, 15:14
Цитата: Vyacheslav Yurkov от Сентябрь 22, 2014, 14:50
Ну так вот этот-то метод в модели
http://qt-project.org/doc/qt-4.8/qabstractitemmodel.html#columnCount
, а не во view.
Можно немного поподробнее, пжлста, как мне объединить эти 2 модели в одну.
Храни в моделях указатель на данные.
Спасибо, кэп. Я именно так и делаю, о чём написал уже выше по треду. Вопрос был в том, что если данные меняются в одной модели, как уведомить об этом другую модель? Если архитектура, как заметили выше, не совсем правильная, то как объединить эти две модели в одну, учитывая, что количество строк/столбцов разное?
Записан
vizir.vs
Гость
Re: Совет по дизайну. Две модели для данных
«
Ответ #17 :
Сентябрь 22, 2014, 15:40 »
Вариант такой. Для функции data указывать роль. Создай две пользовательских роли hex и bin. В зависимости от роли будут и данные.
Записан
UVV
Гость
Re: Совет по дизайну. Две модели для данных
«
Ответ #18 :
Сентябрь 22, 2014, 16:03 »
Цитата: vizir.vs от Сентябрь 22, 2014, 15:40
Вариант такой. Для функции data указывать роль. Создай две пользовательских роли hex и bin. В зависимости от роли будут и данные.
Окей, с data разобрались. Чё делать с row/columnCount?
Записан
Bepec
Гость
Re: Совет по дизайну. Две модели для данных
«
Ответ #19 :
Сентябрь 22, 2014, 17:15 »
Делегат отрисовывает ВСЁ как хочет. И никто ему не указ. Вообще.
Если уж так хотите сделать всё в модели - тупо сделайте в ней 2 режима HEX и BIN.
Записан
Old
Джедай : наставник для всех
Offline
Сообщений: 4350
Re: Совет по дизайну. Две модели для данных
«
Ответ #20 :
Сентябрь 22, 2014, 18:21 »
Цитата: Bepec от Сентябрь 22, 2014, 17:15
Делегат отрисовывает ВСЁ как хочет. И никто ему не указ. Вообще.
Если уж так хотите сделать всё в модели - тупо сделайте в ней 2 режима HEX и BIN.
А как все начиналось... "неправильная архитектура"... а закончилось все как всегда - сделайте тупо.
Вячеслав, все вы нормально делали, научите хранилище информировать модели о своем изменении (отсылкой сигнала), а в моделях ловите этот сигнал и обновляйте, только изменившиеся в хранилище данные.
Записан
Bepec
Гость
Re: Совет по дизайну. Две модели для данных
«
Ответ #21 :
Сентябрь 22, 2014, 18:40 »
Old я не понял вас. Какой сигнал, какие изменения в хранилище
А делать "тупо" нужно всегда, когда нужно сделать быстро.
Записан
Old
Джедай : наставник для всех
Offline
Сообщений: 4350
Re: Совет по дизайну. Две модели для данных
«
Ответ #22 :
Сентябрь 22, 2014, 18:48 »
Цитата: Bepec от Сентябрь 22, 2014, 18:40
Old я не понял вас. Какой сигнал, какие изменения в хранилище
Это потому, что вы ни секунды не думали над тем, о чем спрашивал ТС.
Цитата: Bepec от Сентябрь 22, 2014, 18:40
А делать "тупо" нужно всегда, когда нужно сделать быстро.
То что вы всегда делаете тупо, не означает что так надо делать.
К тому же я не увидел, где ТС просит вас это сделать быстро. Наоборот, он спрашивал как это сделать хорошо.
Записан
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Re: Совет по дизайну. Две модели для данных
«
Ответ #23 :
Сентябрь 22, 2014, 20:27 »
Цитировать
А делать "тупо" нужно всегда, когда нужно сделать быстро.
Аха..) Вот после таких заявления, я начинаю лучше понимать пословицы типа:
"Я не настолько богат, чтобы тратить деньги на дещёвые вещи")
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
Bepec
Гость
Re: Совет по дизайну. Две модели для данных
«
Ответ #24 :
Сентябрь 22, 2014, 21:28 »
Главная мудрость пословиц - они друг другу противоречат, если не знали
Ибо нет золотой середины.
Но когда нужно сделать за день - нет времени расписывать архитектуру.
Я подумал. И вижу что у вас появилось хранилище. Откуда - я хз
У ТСса 2 модели. Мб сначала предложить создать отдельное хранилище? А то вы как фокусник - создали хранилище из ниоткуда
Вы предлагаете вынести хранилище из модели. НО... Но модель это и есть хранилище. Вынести функционал - это тоже костыль
А так то, для внимательных - я предложил 2 варианта. Красиво и медленно или тупо и быстро.
Записан
Old
Джедай : наставник для всех
Offline
Сообщений: 4350
Re: Совет по дизайну. Две модели для данных
«
Ответ #25 :
Сентябрь 22, 2014, 21:33 »
2Верес. Перечитайте первое сообщение. У ТС есть хранилище (данные) и есть две модели.
Может вы и подумали, только вряд ли поняли. Зато постов важных написали не мало.
Записан
Bepec
Гость
Re: Совет по дизайну. Две модели для данных
«
Ответ #26 :
Сентябрь 22, 2014, 21:56 »
Почитайте сами. У него есть ДАННЫЕ. Над которыми 2(две) модели.
Нет у него хранилища. У него сырые данные. Было бы хранилище, вот тогда он бы поступил по вашему совету
Записан
Old
Джедай : наставник для всех
Offline
Сообщений: 4350
Re: Совет по дизайну. Две модели для данных
«
Ответ #27 :
Сентябрь 22, 2014, 21:59 »
QByteArray это простое хранилище данных, к нему легко можно добавить сигнал о модификации.
Записан
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Re: Совет по дизайну. Две модели для данных
«
Ответ #28 :
Сентябрь 22, 2014, 22:13 »
Цитировать
Главная мудрость пословиц - они друг другу противоречат, если не знали Ибо нет золотой середины.
Что там друг-другу противоречит?
Я уж молчу о том, что ситуации, когда "пятки горят" и надо за один день сделать абы как - это подход реальных "find/replace/if-else/case" профессионалов) Это, конечно, к крайностям не относится)
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
Bepec
Гость
Re: Совет по дизайну. Две модели для данных
«
Ответ #29 :
Сентябрь 22, 2014, 22:56 »
Давайте реализуйте мне за день программу сложности "я нихрена в этом не разбираюсь в первый раз вижу но делать надо". Я посмотрю на вашу архитектуру
Архитектура в первую очередь строится на знании предмета. А когда форс мажор, тут какие знания - тут лишь бы работало и быстрее.
PS футуристичные рассказы как люди писали программы с превосходной архитектурой за день можете не приводить - единственный в них смысл в том, что эти люди знали предмет и имели заготовки по нему
Записан
Страниц:
1
[
2
]
3
4
5
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...