Название: Model/View Programming Отправлено: Steven_Orko от Декабрь 26, 2005, 19:45 Подскажите, что можно почитать на русском, чтобы понять, как это устроенно в Qt? как строить собственные модели и т.п. С английским большая проблемма...
Название: Model/View Programming Отправлено: Racheengel от Декабрь 27, 2005, 12:09 Я думаю, там и русский не поможет.... ИМХО так тупо реализовать - надо еще додуматься...
Название: Model/View Programming Отправлено: Steven_Orko от Декабрь 27, 2005, 16:43 ну а все-таки??? Какое-нибудь понятное описание для использования этого механизма гденть есть? :)
Название: Model/View Programming Отправлено: Sergeich от Декабрь 27, 2005, 16:47 Для начала можешь посмотреть перевод статейки из QQ : http://hardclub.donntu.edu.ua/projects/qt/qq/qq10-mvc.html
Название: Model/View Programming Отправлено: Racheengel от Декабрь 28, 2005, 11:18 Пробовал вчера разобраться с этим чудом...
Вроде идею понял, но... НАХРЕНА ТАК УСЛОЖНЯТЬ???? Если глубоко подумать над всем этим... Понятие модели совсем лишнее, проще напрямую обмениваться данными с делегатом... Да и не понятно, как можно для одной модели поставить несколько делегатов (если вообще можно). Кто-нить это юзал вообще? Название: Model/View Programming Отправлено: Steven_Orko от Декабрь 28, 2005, 12:40 Да, теперь уже я юзаю. :) ))) Создал новую модель и виджет наподобии QTableWidget. Только со своими отдельными свойствами. А так в общем ОЧЕНЬ пожий на QTableWidget. По ссылке Sergeich как пример было, кажется, написано, как использовать несколько делеагатов. Не помню, вчера ночью читал :wink: ))). А так ты действительно прав... зачем так усложнять? Особенно,е сли использовать абстрактные классы для отображения в таблице, дереве, списке и т.д.? Если кому надо, могу потом как-нибудь текст виджета выложить куда-нибудь, если интересно... но это как допишу )))
Название: Model/View Programming Отправлено: Racheengel от Декабрь 28, 2005, 13:51 мне реально нужна ПРОСТАЯ вещь. Есть несколько объектов, которые надо отобразить в виде дерева. Но во первых, надо максимально просто их добавлять, во-вторых, отрисовывать ПО-РАЗНОМУ. Но мы имеем лишь один делегат на одну модель, а QTreeWidgetItem не позволяет выполнять собственную отрисовку, как это было в 3-й версии :( Только чтобы сделать это, мне надо фигачить свою модель, в нее вставлять свой список, делать методы для доступа к нему... жуть...
Название: Model/View Programming Отправлено: Steven_Orko от Декабрь 28, 2005, 13:56 Слушай, так это есть в примерах к Qt... посмотри реализацию простой модели для дерева... Кажется "itemviews/simpletreemodel/treeitem.cpp", ну и так далее... там разберешься )))
Название: Model/View Programming Отправлено: Racheengel от Декабрь 28, 2005, 14:10 Да я разобрался, просто это все равно, что "из пушки по воробьям".... не вяжется со слоганом троллей "code less - create more"
Название: Model/View Programming Отправлено: Sergey B. от Август 07, 2007, 11:18 Ну вот, понабрались опыта, теперь как уже опытные Model\View кодеры, давайте поговорим о недостатках реализации в Qt этого чуда.
Я использовал модели только в Java (акромя Qt), должен сказать, что работа моделей с отображениями, намного проще. К примеру: есть список, есть модель, даже вставляя данные в модель, я всегда могу сделать list.getSlectedItem() И получить значение текущего элемента, в Qt надо ловить в model currentIndex... :(, и из него уже получать значение В принципе терпимо, только кода больше... Название: Model/View Programming Отправлено: Gryz от Август 07, 2007, 11:49 Но ведь необходимые часто используемые методы можно самому реализовать. Всё для этого есть.
Название: Model/View Programming Отправлено: SABROG от Август 07, 2007, 16:47 Цитата: "Sergey B." Ну вот, понабрались опыта, теперь как уже опытные Model\View кодеры, давайте поговорим о недостатках реализации в Qt этого чуда. Я использовал модели только в Java (акромя Qt), должен сказать, что работа моделей с отображениями, намного проще. К примеру: есть список, есть модель, даже вставляя данные в модель, я всегда могу сделать list.getSlectedItem() И получить значение текущего элемента, в Qt надо ловить в model currentIndex... :(, и из него уже получать значение В принципе терпимо, только кода больше... Мне кажется в Qt понятия разделены. Одно дело компонент для работы с итемами и другое - источник, хранилище данных. Задача компонента работать с представлением итема, а задача модели с его содержимым. Поэтому понятие выделенный и текущий элемент относится к компоненту, а не к модели. Сегодня это один компонент показывающий данные одной модели и позволяющий выделять элементы, а завтра это другой компонент показывающий данные модели, но позволяющий элементы не выделять, а приближать или отдалять в 3х мерном пространстве. И будет глупо требовать от модели показать какие итемы были приближены или отдалены. |