Mais si je fais la même chose avec setFilterKeyColumn(2), à quoi s'applique la méthode setFilterFixedString() ?
Ça n'annule pas mon précédent filtre ?
Elle s'applique sur la 3ème colonne (tout index de colonne commence par 0).
En effet cela va annuler ton précédent filtre. Je ne sais pas trop ce que tu veux faire, mais si tu comptes appliquer 2 filtres (l'un sur la 1er colonne puis l'autre sur la seconde colonne), il faut utiliser une chaine de proxys.
Au lieu de setter le proxymodel sur ta vue
vueResultats->setModel(modeleFiltre) ;
tu vas utiliser ce proxy comme sourcemodel() d'une nouvelle instance de QSortProxyModel. Sur cette nouvelle instance, tu vas définir le filterKeyColumn à la troisième colonne.
Et c'est ce nouveau proxy que tu vas donner à ta vue vueResultats (car comme tu l'as remarqué dans ton précédent code, un proxy est une classe dérivée de QAbstractItemModel).
Si je schématise ta chaine de model ca donne un truc comme ca :
QStandardItemModel <- QSortFilterProxyModel (1) <- QSortFilterProxyModel (2) <- QAbstractItemView
avec QSortFilterProxyModel (1) : proxy qui filtre la 1ere colonne
avec QSortFilterProxyModel (2) : proxy qui filtre la 2eme colonne
Bonne chance !
Ps : remplace
void OngletSaisie::filtrageNom(QString nouveauTexte)
par
void OngletSaisie::filtrageNom(const QString & nouveauTexte)
Partager