Название: Чей метод? Отправлено: Igors от Июнь 16, 2017, 15:41 Добрый день
Есть наследник QTreeWidget у которого и QTreeWidgetItem перекрыт. По нажатию на checkbox в колонке нужно - если у айтема есть чайлды - установить то же значение checkbox'а им всем - если у айтема есть парент - установить ему (и всем его парентам) значения выбран/нет/полу-выбран Такие диалоги Вы часто видели в инсталлах (выбор какие фичи ставить). Проблем с реализацией нет. Но чьим методом должен быть этот код? Спасибо Название: Re: Чей метод? Отправлено: Авварон от Июнь 16, 2017, 16:56 Не важно. Архитектура виджетов и так плохо продумана (нет контроллеров), поэтому пишите, где ходите.
Название: Re: Чей метод? Отправлено: Авварон от Июнь 16, 2017, 17:04 А так, я бы клал в виджет (он и так модель + вид + контроллер); а айтем - просто данные для модели.
Название: Re: Чей метод? Отправлено: Racheengel от Июнь 16, 2017, 18:28 +1
Сигналы получает наследник QTreeWidget, пусть он и обрабатывает (на правах контроллера). В конце концов, QTreeWidgetItem мало что знает про чилдов-парентов. Название: Re: Чей метод? Отправлено: Авварон от Июнь 16, 2017, 19:24 Йа кстати писал такую штуку, но делал это на моделях, соответственно логика была в модели.
Название: Re: Чей метод? Отправлено: Racheengel от Июнь 16, 2017, 22:59 Йа кстати писал такую штуку, но делал это на моделях, соответственно логика была в модели. Логика в модели - вроде ж моветон по последнимъ канонамъ? Или уже снова не? :) Название: Re: Чей метод? Отправлено: Авварон от Июнь 17, 2017, 00:39 Конкретно в этом случае, нет - это обеспечение консистентности данных модели.
Название: Re: Чей метод? Отправлено: Igors от Июнь 17, 2017, 07:56 Логика в модели - вроде ж моветон по последнимъ канонамъ? Или уже снова не? :) Хранить в модели или нет - по задаче, нужно ли оно там. У меня в модели никаких флажков не хранится - когда нажато Оk из исходного дерева формируется выходное (на основании поставленных checkbox'ов).Думается просто ф-ция (не член никакого класса), возможно template если понадобится там и сям (пока нет) Название: Re: Чей метод? Отправлено: deMax от Июль 10, 2017, 08:26 Не важно. Архитектура виджетов и так плохо продумана (нет контроллеров), поэтому пишите, где ходите. Так вроде контрол внешний. QTreeView - вид, QAbstractItemModel - модель.TreeWidget - это когда данный элемент простой и нет смысла MVC городить для helloword. |