Russian Qt Forum

Qt => Model-View (MV) => Тема начата: ASGAlex от Июль 07, 2010, 23:32



Название: QAbstractItemModel "не даёт" доступа ко всем записям. [SOLVED]
Отправлено: ASGAlex от Июль 07, 2010, 23:32
Пишу своё графическое представление для SQLite-базы данных.
Рядом с ним для удобства отладки посметил простое QTableView;

Записей в БД много но, когда вызываю model()->rowCount(rootIndex()); из своего QAbstractItemView, то получаю число не более 256, в то время как записей может быть и больше. В результате у меня получается недорисованное представление.

Прокручиваю список в QTableView до строки №256... после нё тоже ничего нет, однако через пару секунд список внезапно дополняется... и, как следствие, мой QAbstractItemView внезапно получает доступ к остальным строкам данных и дорисовывает недорисованное. Почему мне не дают доступа ко всем строкам и почему QTableView вдруг открывает этот доступ - в документации ответа не нашел =\  

Пробовал получать число строк таким способом:
Код:
QSqlQuery query;
query.exec("SELECT COUNT(*) FROM System;");
query.next();

int maxrow=query.value(0).toInt();
Но обойти ограничение всё равно не удалось. Конечно да, число возвращается верное, однако потом model()->index(maxrow, 0, rootIndex()); все равно не даёт доступа к элементу, если maxrow>256

Помогите, пожалуйста, решить эту проблему. Спасибо.


Название: Re: QAbstractItemModel "не даёт" доступа ко всем записям. [SOLVED]
Отправлено: ASGAlex от Июль 08, 2010, 00:30
Отвечу сам себе, может кому и пригодится:
QAbstractItemModel::canFetchMore(rootIndex()) и QAbstractItemModel::fetchMore(rootIndex()) исправляют положение.