Russian Qt Forum

Qt => Интернационализация, локализация => Тема начата: Modest52RUS от Январь 14, 2010, 04:31



Название: вывод кириллицы из виджета Line Edit
Отправлено: Modest52RUS от Январь 14, 2010, 04:31
Скажу сразу, я не очень долго прогаю в QT и эта проблема для меня оказалась неразрешимой.

Создал окно с вопросом. Ответ на вопрос вводится в виджет Line Edit с названием FIO. Ответ вводится кириллицей. Как мне считать этот кириллический ответ, чтобы потом его можно было записать в файл или хотябы отобразить с помощью qDebug()? ???

Сам считываю так:
QByteArray FIO1;
string FIO2;
FIO1 = ui.FIO->text();
FIO2 = ui.FIO->text();

Если ввожу ответ латиницей, то записывает нормально, если кириллицей, то ответ  - знаки вопроса.(кириллица не отображается)

Возможно как-то надо использовать метод tr():
#include <qtextcodec.h>

QTextCodec *russian =QTextCodec::codecForName("CP1251");
QTextCodec::setCodecForTr(russian);   
Но, как - я понять не смог.  :(


Название: Re: вывод кириллицы из виджета Line Edit
Отправлено: Marat(Qt) от Январь 14, 2010, 04:39
QString FIO2;
FIO2=ui.FIO->text();

Читайте Макса Шлее или Жасмин Бланшет. Очень полезно начинать с подобных книжек


Название: Re: вывод кириллицы из виджета Line Edit
Отправлено: Modest52RUS от Январь 14, 2010, 04:50
Спасибо за заметку, конечно QString - описался. 
Книга хорошая, не спорю, но ответа на мой вопрос там нет.


Название: Re: вывод кириллицы из виджета Line Edit
Отправлено: pastor от Январь 14, 2010, 05:03
Выполни поиск по разделу форума Интернационализация, локализация на предмет QTextCodec


Название: Re: вывод кириллицы из виджета Line Edit
Отправлено: Modest52RUS от Январь 14, 2010, 11:25
Вообщем раскурил. Помогла такая штука:
 QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());

 :)


Название: Re: вывод кириллицы из виджета Line Edit
Отправлено: Dendy от Январь 14, 2010, 11:55
Вам не нужны никакие кодеки, всё уже в Unicode. Записать в файл так:

Код
C++ (Qt)
QFile file( "answer.txt" );
file.open( QIODevice::WriteOnly );
QTextStream ts( &file );
ts << lineEdit->text();


Название: Re: вывод кириллицы из виджета Line Edit
Отправлено: Modest52RUS от Январь 14, 2010, 12:41
Спасибо :)