crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Установка фильтра, да не простого, а с несколькими or
poluna
  опции профиля:
сообщение 25.12.2015, 15:10
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 27
Регистрация: 5.10.2015
Пользователь №: 4458

Спасибо сказали: 1 раз(а)




Репутация:   0  


Есть QTreeView, QStandardItemModel и QSortFilterProxyModel.
proxyModel.setSourceModel(model)
treeView.setModel(proxyModel)
proxyModel.setFilterKeyColumn(3) # Не суть важно, какой столбец, у меня он не хардкодится как здесь

proxyModel.setFilterFixedString('Овощи')
Вопрос, как мне установить несколько фильтров?
proxyModel.setFilterFixedString('Картофель')
proxyModel.setFilterFixedString('Томаты')
proxyModel.setFilterFixedString('Огурцы')
и чтобы они все показывались?

Сообщение отредактировал poluna - 25.12.2015, 15:11
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
lanz
  опции профиля:
сообщение 25.12.2015, 15:37
Сообщение #2


Старейший участник
****

Группа: Участник
Сообщений: 690
Регистрация: 28.12.2012
Пользователь №: 3660

Спасибо сказали: 113 раз(а)




Репутация:   8  


1. Вариант для ленивых
proxyModel.setFilterRegExp(r"Томаты|Огурцы|Картофель")
http://doc.qt.io/qt-5/qsortfilterproxymode...lterRegExp-prop
2. Для не очень ленивых, позволяющий фильтровать в коде а не в регекспах - перегрузить
http://doc.qt.io/qt-5/qsortfilterproxymode...ilterAcceptsRow
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
poluna
  опции профиля:
сообщение 28.12.2015, 10:14
Сообщение #3


Студент
*

Группа: Участник
Сообщений: 27
Регистрация: 5.10.2015
Пользователь №: 4458

Спасибо сказали: 1 раз(а)




Репутация:   0  


Спасибо, взяла на вооружение вариант для ленивых, самое то! :)

Сообщение отредактировал poluna - 28.12.2015, 10:14
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 18.11.2019, 20:18