Russian Qt Forum
Ноябрь 01, 2024, 02:07 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Model/View Programming  (Прочитано 9696 раз)
Steven_Orko
Гость
« : Декабрь 26, 2005, 19:45 »

Подскажите, что можно почитать на русском, чтобы понять, как это устроенно в Qt? как строить собственные модели и т.п. С английским большая проблемма...
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #1 : Декабрь 27, 2005, 12:09 »

Я думаю, там и русский не поможет.... ИМХО так тупо реализовать - надо еще додуматься...
Записан

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 не волк, в лес не уйдёт
Steven_Orko
Гость
« Ответ #2 : Декабрь 27, 2005, 16:43 »

ну а все-таки??? Какое-нибудь понятное описание для использования этого механизма гденть есть?  Улыбающийся
Записан
Sergeich
Гость
« Ответ #3 : Декабрь 27, 2005, 16:47 »

Для начала можешь посмотреть перевод статейки из QQ : http://hardclub.donntu.edu.ua/projects/qt/qq/qq10-mvc.html
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #4 : Декабрь 28, 2005, 11:18 »

Пробовал вчера разобраться с этим чудом...
Вроде идею понял, но... НАХРЕНА ТАК УСЛОЖНЯТЬ?Непонимающий
Если глубоко подумать над всем этим... Понятие модели совсем лишнее, проще напрямую обмениваться данными с делегатом... Да и не понятно, как можно для одной модели поставить несколько делегатов (если вообще можно).
Кто-нить это юзал вообще?
Записан

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 не волк, в лес не уйдёт
Steven_Orko
Гость
« Ответ #5 : Декабрь 28, 2005, 12:40 »

Да, теперь уже я юзаю.  Улыбающийся ))) Создал новую модель и виджет наподобии QTableWidget. Только со своими отдельными свойствами. А так в общем ОЧЕНЬ пожий на QTableWidget. По ссылке Sergeich как пример было, кажется, написано, как использовать несколько делеагатов. Не помню, вчера ночью читал  :wink: ))). А так ты действительно прав... зачем так усложнять? Особенно,е сли использовать абстрактные классы для отображения в таблице, дереве, списке и т.д.? Если кому надо, могу потом как-нибудь текст  виджета выложить куда-нибудь, если интересно... но это как допишу )))
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #6 : Декабрь 28, 2005, 13:51 »

мне реально нужна ПРОСТАЯ вещь. Есть несколько объектов, которые надо отобразить в виде дерева. Но во первых, надо максимально просто их добавлять, во-вторых, отрисовывать ПО-РАЗНОМУ. Но мы имеем лишь один делегат на одну модель, а QTreeWidgetItem не позволяет выполнять собственную отрисовку, как это было в 3-й версии Грустный Только чтобы сделать это, мне надо фигачить свою модель, в нее вставлять свой список, делать методы для доступа к нему... жуть...
Записан

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 не волк, в лес не уйдёт
Steven_Orko
Гость
« Ответ #7 : Декабрь 28, 2005, 13:56 »

Слушай, так это есть в примерах к Qt... посмотри  реализацию простой  модели для дерева... Кажется "itemviews/simpletreemodel/treeitem.cpp", ну и так далее... там разберешься )))
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #8 : Декабрь 28, 2005, 14:10 »

Да я разобрался, просто это все равно, что "из пушки по воробьям".... не вяжется со слоганом троллей "code less - create more"
Записан

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 не волк, в лес не уйдёт
Sergey B.
Программист
*****
Offline Offline

Сообщений: 544



Просмотр профиля WWW
« Ответ #9 : Август 07, 2007, 11:18 »

Ну вот, понабрались опыта, теперь как уже опытные Model\View кодеры, давайте поговорим о недостатках реализации в Qt этого чуда.
Я использовал модели только в Java (акромя Qt), должен сказать, что работа моделей с отображениями, намного проще.
К примеру:
есть список, есть модель, даже вставляя данные в модель,  я всегда могу сделать list.getSlectedItem() И получить значение текущего элемента, в Qt надо ловить в model currentIndex... Грустный, и из него уже получать значение
В принципе терпимо, только кода больше...
Записан
Gryz
Гость
« Ответ #10 : Август 07, 2007, 11:49 »

Но ведь необходимые часто используемые методы можно самому реализовать. Всё для этого есть.
Записан
SABROG
Гость
« Ответ #11 : Август 07, 2007, 16:47 »

Цитата: "Sergey B."
Ну вот, понабрались опыта, теперь как уже опытные Model\View кодеры, давайте поговорим о недостатках реализации в Qt этого чуда.
Я использовал модели только в Java (акромя Qt), должен сказать, что работа моделей с отображениями, намного проще.
К примеру:
есть список, есть модель, даже вставляя данные в модель,  я всегда могу сделать list.getSlectedItem() И получить значение текущего элемента, в Qt надо ловить в model currentIndex... Грустный, и из него уже получать значение
В принципе терпимо, только кода больше...


Мне кажется в Qt понятия разделены. Одно дело компонент для работы с итемами и другое - источник, хранилище данных. Задача компонента работать с представлением итема, а задача модели с его содержимым. Поэтому понятие выделенный и текущий элемент относится к компоненту, а не к модели. Сегодня это один компонент показывающий данные одной модели и позволяющий выделять элементы, а завтра это другой компонент показывающий данные модели, но позволяющий элементы не выделять, а приближать или отдалять в 3х мерном пространстве. И будет глупо требовать от модели показать какие итемы были приближены или отдалены.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.047 секунд. Запросов: 23.