Russian Qt Forum

Qt => Model-View (MV) => Тема начата: vitalka от Февраль 07, 2012, 12:07



Название: Построение собственного View
Отправлено: vitalka от Февраль 07, 2012, 12:07
Здравствуйте
Пытаюсь разобраться с правильным построением собственных Представлений. Модель уже есть, и корректно отображается в QTreeView. Пробовал на основе кода QTreeView понять, как лучше наладить работу с собственным представлением. И вот не могу понять как QTreeView получает данные из модели при ее установке, при изменении понятно как. Во время установки модели никаких запросов данных не происходит, значит QTreeView инициирует какой то сигнал от модели, вот только как и какой? Может кто в этом разбирался?


Название: Re: Построение собственного View
Отправлено: Bepec от Февраль 07, 2012, 12:13
Q*View запрашивает модель.
Функция data в модели возвращает данные о ячейках, функции columnCount и rowCount сообщают информацию о количестве строк/столбцов.

А так вообще - открывай Ассистент и читай о model-View.


Название: Re: Построение собственного View
Отправлено: mutineer от Февраль 07, 2012, 12:14
Сорцы QTreeView не смотрел, но может первый запрос данных происходит при необходимости отрисовки вью?


Название: Re: Построение собственного View
Отправлено: vitalka от Февраль 07, 2012, 12:45
Q*View запрашивает модель.
Функция data в модели возвращает данные о ячейках, функции columnCount и rowCount сообщают информацию о количестве строк/столбцов.

А так вообще - открывай Ассистент и читай о model-View.
Про функцию data  в модели я знаю. Но в какой момент и как Представление ее вызывает, вот в чем вопрос.
Ассистент на несколько раз прочитал. Там класно описано о том как делать модели, но очень обще про представления. Можно конечно тупо запрашивать данные из модели и рисовать, но тогда зачем наследовать от QAbstractItemView. Вот и хочу понять, как правильно то сделать..... Тем более мне на основании данной Модели нужно построить довольно большое количество разных Представлений.


Название: Re: Построение собственного View
Отправлено: vitalka от Февраль 07, 2012, 12:47
Сорцы QTreeView не смотрел, но может первый запрос данных происходит при необходимости отрисовки вью?

Прорисовка идет с использованием структуры QTreeViewItem, в которой сохранены так же модельные индексы. До этого эту структуру нужно где то заполнить.


Название: Re: Построение собственного View
Отправлено: Bepec от Февраль 07, 2012, 13:14
Пройди по дебагу максимально глубоко по сырцам.

ps почитал исходники. Там закопан мамонт тот ещё ^^


Название: Re: Построение собственного View
Отправлено: vitalka от Февраль 09, 2012, 06:03
Пройди по дебагу максимально глубоко по сырцам.

ps почитал исходники. Там закопан мамонт тот ещё ^^

Если это все завязано на сигналах, а я подозреваю что так и есть, то прохождение по дебагу практически ничего не даст.


Название: Re: Построение собственного View
Отправлено: Bepec от Февраль 09, 2012, 18:21
Любой сигнал должен отправляться, коннектиться и приниматься.