Russian Qt Forum
Ноябрь 22, 2024, 10:59
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Программирование
>
Общий
>
Чей метод?
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Чей метод? (Прочитано 7024 раз)
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Чей метод?
«
:
Июнь 16, 2017, 15:41 »
Добрый день
Есть наследник QTreeWidget у которого и QTreeWidgetItem перекрыт. По нажатию на checkbox в колонке нужно
- если у айтема есть чайлды - установить то же значение checkbox'а им всем
- если у айтема есть парент - установить ему (и всем его парентам) значения выбран/нет/полу-выбран
Такие диалоги Вы часто видели в инсталлах (выбор какие фичи ставить). Проблем с реализацией нет. Но чьим методом должен быть этот код?
Спасибо
Записан
Авварон
Джедай : наставник для всех
Offline
Сообщений: 3260
Re: Чей метод?
«
Ответ #1 :
Июнь 16, 2017, 16:56 »
Не важно. Архитектура виджетов и так плохо продумана (нет контроллеров), поэтому пишите, где ходите.
Записан
Авварон
Джедай : наставник для всех
Offline
Сообщений: 3260
Re: Чей метод?
«
Ответ #2 :
Июнь 16, 2017, 17:04 »
А так, я бы клал в виджет (он и так модель + вид + контроллер); а айтем - просто данные для модели.
Записан
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Re: Чей метод?
«
Ответ #3 :
Июнь 16, 2017, 18:28 »
+1
Сигналы получает наследник QTreeWidget, пусть он и обрабатывает (на правах контроллера).
В конце концов, QTreeWidgetItem мало что знает про чилдов-парентов.
Записан
What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.
COVID не волк, в лес не уйдёт
Авварон
Джедай : наставник для всех
Offline
Сообщений: 3260
Re: Чей метод?
«
Ответ #4 :
Июнь 16, 2017, 19:24 »
Йа кстати писал такую штуку, но делал это на моделях, соответственно логика была в модели.
Записан
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Re: Чей метод?
«
Ответ #5 :
Июнь 16, 2017, 22:59 »
Цитата: Авварон от Июнь 16, 2017, 19:24
Йа кстати писал такую штуку, но делал это на моделях, соответственно логика была в модели.
Логика в модели - вроде ж моветон по последнимъ канонамъ? Или уже снова не?
Записан
What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.
COVID не волк, в лес не уйдёт
Авварон
Джедай : наставник для всех
Offline
Сообщений: 3260
Re: Чей метод?
«
Ответ #6 :
Июнь 17, 2017, 00:39 »
Конкретно в этом случае, нет - это обеспечение консистентности данных модели.
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Чей метод?
«
Ответ #7 :
Июнь 17, 2017, 07:56 »
Цитата: Racheengel от Июнь 16, 2017, 22:59
Логика в модели - вроде ж моветон по последнимъ канонамъ? Или уже снова не?
Хранить в модели или нет - по задаче, нужно ли оно там. У меня в модели никаких флажков не хранится - когда нажато Оk из исходного дерева формируется выходное (на основании поставленных checkbox'ов).
Думается просто ф-ция (не член никакого класса), возможно template если понадобится там и сям (пока нет)
Записан
deMax
Хакер
Offline
Сообщений: 600
Re: Чей метод?
«
Ответ #8 :
Июль 10, 2017, 08:26 »
Цитата: Авварон от Июнь 16, 2017, 16:56
Не важно. Архитектура виджетов и так плохо продумана (нет контроллеров), поэтому пишите, где ходите.
Так вроде контрол внешний. QTreeView - вид, QAbstractItemModel - модель.
TreeWidget - это когда данный элемент простой и нет смысла MVC городить для helloword.
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
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 сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...