Russian Qt Forum

Qt => Общие вопросы => Тема начата: dnc2rt от Октябрь 28, 2009, 11:38



Название: QRegExpValidator и русский язык
Отправлено: dnc2rt от Октябрь 28, 2009, 11:38
Добрый день!
Появился вопрос, с которым не могу разобраться...
Код работает нормально (из книги):
Код:
  QRegExp reGroupName("[A-Za-z]{3,}");
  edGroupName->setValidator( new QRegExpValidator( reGroupName, this ) );

Но следующий код не работает как следует (использование русского языка):

Код:
  QRegExp reGroupName("[А-Яа-я]{3,}");
  edGroupName->setValidator( new QRegExpValidator( reGroupName, this ) );

Если попробовать иначе, то ответ будет выдан верный... т.е. как я понимаю проблема в QRegExpValidator ?! :

Код:
  QRegExp reTry( "ыв" );
  int i = reTry.indexIn("выв");
  qDebug() << i;

Под Windows проблем не возникло, только под Linux... может кто сталкивался?! Кодировка Utf-8.


Название: Re: QRegExpValidator и русский язык
Отправлено: dnc2rt от Ноябрь 02, 2009, 12:41
Все, разобрался...
Ответ, например для проверки ввода (А-Я):
Код:
QRegExp reGroupName( "[\\x0410-\\x042F]{2,}" );


Название: Re: QRegExpValidator и русский язык
Отправлено: MoPDoBoPoT от Ноябрь 02, 2009, 19:52
Эммм, а QObject::tr() + QTextCodec::setCodecForTr() не помогают?


Название: Re: QRegExpValidator и русский язык
Отправлено: dnc2rt от Ноябрь 13, 2009, 20:08
Пробовал, но в данном случае мне подошел тот вариант. Да и в доках он описан, а я проморгал его...
А QTextCodec использую для того чтобы явно указать рабочую кодировку.
Но спасибо за ответ!!!