setFilterFixedString для нескольких строк

мой вопрос: есть способ поиска двух или более строк (объединение результатов) @ FILTRO->setFilterFixedString(searchText1); FILTRO->setFilterFixedString(searchText2); @ я уже знаю, как найти пересечение, которое имеет две Qstrings, или просто одну из них, но не объединение, которое иметь одну из строк или другую или обе

благодарю вас


person Juan Francisco Arellano Sandov    schedule 18.04.2017    source источник


Ответы (1)


Вы должны использовать регулярное выражение для вашей цели. Попробуйте setFilterRegExp примерно так:

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);

Теперь используйте это выражение в классе QSortFilterProxyModel.

Я не проверял это выражение, это просто пример. Вы найдете полное объяснение в этой ссылке: Регулярное выражение для поиска две строки в любом месте ввода

person mohabouje    schedule 19.04.2017