crossplatform.ru

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

> QString в wchar_t*/char* для MathGL
Fess
  опции профиля:
сообщение 16.9.2010, 16:56
Сообщение #1


Студент
*

Группа: Новичок
Сообщений: 11
Регистрация: 12.9.2010
Пользователь №: 2030

Спасибо сказали: 0 раз(а)




Репутация:   0  


Моя проблема наверняка решалась не раз, помогите!
Нужно на график 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
  опции профиля:
сообщение 16.9.2010, 17:03
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Fess @ 16.9.2010, 20:56) *
которые понимает MathGL.
а он в какой кодировке понимает?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Fess
  опции профиля:
сообщение 16.9.2010, 18:08
Сообщение #3


Студент
*

Группа: Новичок
Сообщений: 11
Регистрация: 12.9.2010
Пользователь №: 2030

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(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, поскольку при этом меняется и формат чисел (в частности, десятичная точка), что может, например, вызвать сложности (неудобство) при написании формул и чтении текстовых файлов. Например, программа ожидает ‘,’ в качестве разделителя целой и дробной части, а пользователь вводит ‘.’.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


6 чел. читают эту тему (гостей: 6, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 15.1.2025, 9:40