Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: QString в wchar_t*/char* для MathGL
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Общие вопросы
Fess
Моя проблема наверняка решалась не раз, помогите!
Нужно на график MathGL вывести текст.
Английский текст выводится замечательно, когда tr возвращает русский перевод вылезают кракозябры.
Испробовал кучу вариантов, но безуспешно. Пусть будет так:
QString Text(QObject::tr("Header"));
wchar_t* RusText = new wchar_t[100000];
int Count = Text.toWCharArray(RusText);
pGraph->Labelw('x',RusText);
pGraph->Text(mglPoint(),RusText);

Нужно получить из русского текста в QString русский текст в wchar_t или char, которые понимает MathGL.
Litkevich Yuriy
Цитата(Fess @ 16.9.2010, 20:56) *
которые понимает MathGL.
а он в какой кодировке понимает?
Fess
Цитата(Litkevich Yuriy @ 16.9.2010, 20:03) *
Цитата(Fess @ 16.9.2010, 20:56) *
которые понимает MathGL.
а он в какой кодировке понимает?

MathGL FAQ
Цитата
Как мне вывести текст на русском/испанском/арабском/японском и т.д.?

Стандартный путь состоит в использовании кодировки UTF-8 для вывода текста. Кроме того, все функции вывода текста имеют интерфейс для 8-битных (char *) строк. Однако в последнем случае Вам может потребоваться установить используемую в исходном тексте локаль. Например, для русского языка в кодировке CP1251 можно использовать setlocale(LC_CTYPE, "ru_RU.cp1251"); (под MS Windows имена локали другие – setlocale(LC_CTYPE, "russian_russia.1251")). Настоятельно не рекомендую использовать константу LC_ALL, поскольку при этом меняется и формат чисел (в частности, десятичная точка), что может, например, вызвать сложности (неудобство) при написании формул и чтении текстовых файлов. Например, программа ожидает ‘,’ в качестве разделителя целой и дробной части, а пользователь вводит ‘.’.
molchanoviv
http://forum.vingrad.ru/forum/topic-203624.html
http://lists.trolltech.com/qt-interest/200...ead00839-0.html

И еще посмотри в сторону функции QString::toStdWString она правда возвращает wstring, но сконвертировать в wchar_t не трудно
Fess
Цитата(molchanoviv @ 16.9.2010, 22:28) *
http://forum.vingrad.ru/forum/topic-203624.html
http://lists.trolltech.com/qt-interest/200...ead00839-0.html

И еще посмотри в сторону функции QString::toStdWString она правда возвращает wstring, но сконвертировать в wchar_t не трудно

К сожалению, ничего не помогло :(
std::wstring wstr = Text.toStdWString();
pGraph->Text(mglPoint(),wstr.data());

std::wstring wstr = Text.toStdWString();
pGraph->Text(mglPoint(),wstr.c_str());

wchar_t buf[100];
buf[Text.toWCharArray(buf)]=0;
pGraph->Text(mglPoint(),buf);

или ничего, или кракозябры.
Англ. текст превосходно выводится во всех случаях.
wstr, однако в отладчике содержит правильный русский текст
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.