crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в QString в wchar_t*/char* для MathGL
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Fess Дата 16.9.2010, 20:32
 
Цитата(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, однако в отладчике содержит правильный русский текст
molchanoviv Дата 16.9.2010, 19:28
  http://forum.vingrad.ru/forum/topic-203624.html
http://lists.trolltech.com/qt-interest/200...ead00839-0.html

И еще посмотри в сторону функции QString::toStdWString она правда возвращает wstring, но сконвертировать в wchar_t не трудно
Fess Дата 16.9.2010, 18:08
 
Цитата(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, поскольку при этом меняется и формат чисел (в частности, десятичная точка), что может, например, вызвать сложности (неудобство) при написании формул и чтении текстовых файлов. Например, программа ожидает ‘,’ в качестве разделителя целой и дробной части, а пользователь вводит ‘.’.
Litkevich Yuriy Дата 16.9.2010, 17:03
 
Цитата(Fess @ 16.9.2010, 20:56) *
которые понимает MathGL.
а он в какой кодировке понимает?
Fess Дата 16.9.2010, 16:56
  Моя проблема наверняка решалась не раз, помогите!
Нужно на график 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.
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 26.6.2022, 10:27