Название: много вьюшек для одной модели - как? Отправлено: ildar от Сентябрь 01, 2009, 16:54 скорее всего подобный вопрос уже задавался, но ответа я не нашел
задача такая: хочется сделать чтобы несколько table-гридов могли отображать данные одной и той же таблицы - так же как в примере tablemodel плюс к этому хочется сделать возможность фильтрации/сортировки для каждого грида отдельно, т.е. данные одни, а представления разные если для каждого QTableView создать собственную QSqlTableModel, то теряется возможность синхронизации изменений если использовать QSortFilterProxyModel для каждого QTableView и связать с единственной QSqlTableModel моделью, то поведение грида некорректно, так как из базы данных выбирается только часть строк которую и сортирует прокси. поделитесь опытом плиз, а то изобретать велосипед нет желания Название: Re: много вьюшек для одной модели - как? Отправлено: Пантер от Сентябрь 01, 2009, 16:57 Можно сразу загрузить все записи через fetchMore() и навесить прокси для каждой вьюхи.
Название: Re: много вьюшек для одной модели - как? Отправлено: ildar от Сентябрь 01, 2009, 22:17 добавил следущее после model.select()
Код: while(model.canFetchMore()) но ничего не изменилось ??? Название: Re: много вьюшек для одной модели - как? Отправлено: Пантер от Сентябрь 02, 2009, 06:15 Прокси коннектишь до или после этого? Попробуй после.
Название: Re: много вьюшек для одной модели - как? Отправлено: ildar от Сентябрь 02, 2009, 09:19 было до, попробовал после - не изменилось
вот кусок кода примера tablemodel который я поменял, кроме этого еще изменил коннект к базе чтобы юзать таблицу с 40k строками Код: int main(int argc, char *argv[]) а есть обкатанный вариант не требующий использования fetchMore? насколько я понимаю это не самое оптимальное решение в плане использования ресурсов. Название: Re: много вьюшек для одной модели - как? Отправлено: Пантер от Сентябрь 02, 2009, 11:29 Нужно по прокси на вьюху делать.
Название: Re: много вьюшек для одной модели - как? Отправлено: ildar от Сентябрь 02, 2009, 11:48 уже пробовал, работает
спасибо :) Название: Re: много вьюшек для одной модели - как? Отправлено: ildar от Сентябрь 02, 2009, 11:57 все равно интересно есть ли вариант без использования model.fetchMore() ?
т.е. делать выборку используя SQL WHERE/ORDER BY и синхронизируя изменения. Ведь в любом случае пользователь за один раз изменяет только одну запись и в GUI компоненте надо обновить только видимые строки. Т.о. переложить отвественность за фильтрацию на сервер БД и избавиться от необходимости пробегаться по всей таблице. Вроде бы это должно ускорить работу?! какие есть идеи? Название: Re: много вьюшек для одной модели - как? Отправлено: ildar от Сентябрь 02, 2009, 12:06 при использовании QSortFilterProxyModel model.fetchMore() необходимо делать после каждого изменения? :o
Название: Re: много вьюшек для одной модели - как? Отправлено: Пантер от Сентябрь 02, 2009, 13:23 В таком случает только по модели на вьюху.
|