Russian Qt Forum

Qt => Интернационализация, локализация => Тема начата: Tin-moon от Июнь 09, 2010, 18:51



Название: Просьба помочь с QRegExp
Отправлено: Tin-moon от Июнь 09, 2010, 18:51
Проблема в следующем ищу из LineEdit слова в тексте, если писать одно слово на русском то ищет если два через пробел то нет, на английском вроде ищет и 2 и больше для того же выражения, почему так?
Вот небольшой кусочек кода
Код:
Search::Search(QWidget *parent,Indexation indexation1,QString &find){
    indexation = indexation1;
    if (!find.isEmpty()) {
        // QRegExp rx("[\\w | \\s] + ");
         QRegExp rx("(\\w+)");
         QString wholeString = find;
         wholeString = wholeString.toLower();
         QStringList words;
         int pos = 0;
         while ((pos = rx.indexIn(wholeString, pos)) != -1) {
             words << rx.cap(1);
             pos += rx.matchedLength();
         }

         int size = indexation.keyWords.size();
         for(int i = 0; i < size; i++){
             QString word = indexation.keyWords.at(i).word;

           for( int j = 0; j < words.length(); j++)
            if(word == words.at(j))
                     hitedIndexes.append(indexation.keyWords.at(i).indexes);
         }
         accept();
         return;
     }
}

Кто может подскажите, кодек прописал
Код:
    QTextCodec *codec = QTextCodec::codecForName("CP1251");
    QTextCodec::setCodecForTr(codec);


Название: Re: Просьба помочь с QRegExp
Отправлено: crossly от Июнь 09, 2010, 19:52
вы кодек для tr() прописали


Название: Re: Просьба помочь с QRegExp
Отправлено: Tin-moon от Июнь 09, 2010, 19:55
вы кодек для tr() прописали
для чего? если просто для сообщений то да(с этим все норм)
если я не про то куда его прописать?


Название: Re: Просьба помочь с QRegExp
Отправлено: crossly от Июнь 10, 2010, 11:44
прочитай внимательно для чего нужна функция tr().... и доку по классу QTextCodec


Название: Re: Просьба помочь с QRegExp
Отправлено: Tin-moon от Июнь 10, 2010, 17:35
Ну как всегда на почитай) мне просто нужно регулярное выражение нормальное, чтобы учитывало пробелы, и можно было задовать для поиска n-количество слов
Вот прописал для руского-англ:
QTextCodec::setCodecForCStrings(codec);