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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Проблема с QSortFilterProxyModel  (Прочитано 7650 раз)
registrationfedser87
Гость
« : Июль 15, 2008, 13:23 »

имеется QSqlTableModel-она используется у меня во многих вьюшках. Насколько я знаю чтобы работать с моделью и при этом чтобы набор данных в модели не менялся (при выборке данных например) используется QSortFilterProxyModel. У меня вопрос- как мне сделать простую фильтрацию (id>20),чтобы при этом набор данных в исходной модели не поменялся?
Записан
Dodge
Гость
« Ответ #1 : Июль 15, 2008, 13:35 »

про выборку читайте асистент.

Если это бд, можно отказатся от использования прокси модели.

Код:
QSqlQueryModel myQueryModel;
myQueryModel.setQuery( "SELECT * FROM my_table WHERE id > 0;" );

или

Код:
QSqlTableModel myTableModel;
myTableModel.setTable( "my_table" );
myTableModel.setFilter( "id > 0" );
myTableModel.select();
Записан
registrationfedser87
Гость
« Ответ #2 : Июль 15, 2008, 13:51 »

Меня такой вариант не устраивает вот почему: в обоих приведённых вами случаях набор данных в модели поменяется-и в других представлениях (например QTableView) будет отображатся по новому(с учётом новой выборки)-а я хочу чтобы бы всё было синхронизированно и шло от одной модели
Записан
Dodge
Гость
« Ответ #3 : Июль 15, 2008, 14:43 »

ммм... если реч идет о выборки данных, параметры которой задает пользователь, то я могу прикрепить пример реализации такой выборки на базе прокси модели...
Записан
registrationfedser87
Гость
« Ответ #4 : Июль 15, 2008, 14:47 »

Было бы чудно посмотреть! Мне сложные условия выборки не нужны-мне нужно что-то похожее на "id>10"
Записан
Dodge
Гость
« Ответ #5 : Июль 15, 2008, 15:02 »

Вот как это выглядит:


архив с исходниками, прокси модель + виджет фильтр

З.Ы. некритиковать, код на нобелевскую премию не претендует =)
Записан
ритт
Гость
« Ответ #6 : Июль 15, 2008, 15:04 »

и разве это - проблема?
нежелание читать документацию - проблема
Записан
registrationfedser87
Гость
« Ответ #7 : Июль 15, 2008, 15:14 »

и разве это - проблема?
нежелание читать документацию - проблема
Я конечно прежде чем задавать вопрос всегда читаю документацию-раз уж я задаю вопрос-значит я в документации не нашёл ответа-не покажешь в какую сторону смотреть?
Записан
Alex03
Гость
« Ответ #8 : Июль 16, 2008, 07:29 »

Я конечно прежде чем задавать вопрос всегда читаю документацию-раз уж я задаю вопрос-значит я в документации не нашёл ответа-не покажешь в какую сторону смотреть?
QSortFilterProxyModel::filterAcceptsRow()
Записан
registrationfedser87
Гость
« Ответ #9 : Июль 16, 2008, 07:36 »

Спасибо всем откликнувшимся-всё получилось.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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