Russian Qt Forum
Ноябрь 23, 2024, 01:39 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: нет русских букв в приложении ПРИВЕТ МИР  (Прочитано 5845 раз)
izoomer
Гость
« : Октябрь 30, 2006, 11:59 »

Не отображает русские буквы в приложени.Скомпилил стандартный hello world, на кнопке написал ПРИВЕТ МИР, запустил , а он мне каракули выдал. (код правил в миднайте)
Локаль  RU_utf-8
Русский везде отображается (и в консоле и в иксах).
Что не так ?

добавлено спустя 14 минут:

 покопался в поиске и вот что нашел

QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF8"));
. . .
QPushButton hello(QObject::tr("Привет мир"));

так русские буквы есть.
Подскажите, всегда ли при надобности отображения русского текста нужно вставлять перекодировку посредством QObject::tr ?

добавлено спустя:

 чуть не забыл -  QT-4.2.
Записан
Вудруф
Гость
« Ответ #1 : Октябрь 30, 2006, 13:52 »

Код:
QTextCodec::setCodecForCStrings ( QTextCodec * c )
Записан
bigirbis
Гость
« Ответ #2 : Октябрь 30, 2006, 14:24 »

Можно еще так:
QString QString::fromLocal8Bit ( const char * str, int size = -1 )  [static]
Записан
izoomer
Гость
« Ответ #3 : Октябрь 30, 2006, 14:33 »

работает.
Записан
Dendy
Гость
« Ответ #4 : Октябрь 31, 2006, 10:08 »

Избитая тема. Но стоит повториться.

QObject::tr() нужен для подставления локализованьІх строк по ключу. Етот механизм позволяет не использовать НЕ-латинские символьІ в коде. Использование не-латинских символов само по себе является плохим стилем программирования. В Qt4 можно локализованьІе строки легко засунуть в исполняемьІй файл, чтобьІ не тягать отдельно вместе с программой файл локализации.

По хорошему правильно так:
1. Не юзать
Код:
QTextCodec::setCodecFor...

2. Юзать латинские символьІ в tr():
Код:
QPushButton * button = new QPushButton( tr( "hello" ), this );

3. Юзать QTranslator для перевода строк.
4. Добавить в проект переведённую строку "hello" на русский язьІк как ресурс.
Записан
bigirbis
Гость
« Ответ #5 : Октябрь 31, 2006, 10:51 »

Цитировать
В Qt4 можно локализованьІе строки легко засунуть в исполняемьІй файл, чтобьІ не тягать отдельно вместе с программой файл локализации.

Можно более развернуто, а то в ассистанте не нашел?
Записан
Dendy
Гость
« Ответ #6 : Октябрь 31, 2006, 12:53 »

В Ассистанте: The Qt Resource System
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.05 секунд. Запросов: 21.