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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Позиционирование в QTableView & QSqlQueryModel  (Прочитано 2621 раз)
Majestio
Гость
« : Апрель 26, 2013, 08:27 »

Ситуация в следующем:

Есть форма с QTableView, которая отображает данные запроса, используя QSqlQueryModel. Мы позиционировались на строку с данными, например, Поле "Id" = 5, ... + остальные поля. Потом применили фильтр (или сортировку), задав для QSqlQueryModel новый запрос. Таблица перечиталась. Как о5 позиционировать селект строки на старую позицию (с Поле "Id" = 5)?

Использую PostgreSQL 9.2.1, Qt 4.8.4
Записан
VPS
Гость
« Ответ #1 : Апрель 26, 2013, 13:32 »

Можно попробовать один раз написать запрос на выборку данных из таблицы, а уже потом манипулировать данными (сортировка или фильтрация) через объект класса "QSortFilterProxyModel", который связать связать с исходной моделью "QSqlQueryModel". Тогда можно перед манипуляциями сохранять индекс выделенного элемента, а после - переходить к нему обратно  (если он виден в представлении).

П.С.: в зависимости от задачи это может и не подойти...
« Последнее редактирование: Апрель 26, 2013, 13:34 от vps » Записан
Majestio
Гость
« Ответ #2 : Апрель 27, 2013, 01:41 »

Можно попробовать один раз написать запрос на выборку данных из таблицы, а уже потом манипулировать данными (сортировка или фильтрация) через объект класса "QSortFilterProxyModel", который связать связать с исходной моделью "QSqlQueryModel". Тогда можно перед манипуляциями сохранять индекс выделенного элемента, а после - переходить к нему обратно  (если он виден в представлении).

П.С.: в зависимости от задачи это может и не подойти...

"Беда" в том, что фильтрацию я намереваюсь делать на стороне сервера. С точки зрения производительности на клиента это возложить никак не могу. Будут скорее регэкспы по всем полям.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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