2017-04-18 1 views
0

mon cuestion est: il existe un moyen de rechercher deux ou plusieurs chaînes (syndicat des résultats) @ FILTRO->setFilterFixedString(searchText1); FILTRO->setFilterFixedString(searchText2); @ je sais déjà comment trouver l'intersection qui ont les deux QString, ou tout simplement l'un d'entre eux, mais pas l'union qui ont l'une des chaînes ou l'autre ou les deuxsetFilterFixedString pour plusieurs chaînes

vous remercie

Répondre

0

vous devez utiliser une expresion régulière à vos besoins. Essayez setFilterRegExp avec quelque chose comme ceci:

const QString firstString = "Hello"; 
const QString secondString = "Bye"; 
const QString exp = QString("/^.*?(?:\b|_)%1(?:\b|_).*?(?:\b|_)%2(?:\b|_).*?$/m").arg(firstString, secondString); 
QRegExp regExp(exp); 

utiliser maintenant cette expresion dans la classe QSortFilterProxyModel.

Je n'ai pas testé cette expression, est juste un exemple. Vous trouverez une explication complète dans ce lien: Regular expression to find two strings anywhere in input