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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: ??? вместо рус. языка  (Прочитано 5093 раз)
Archa4
Гость
« : Февраль 18, 2011, 13:00 »

Вообщем пытаюсь показать такую вещь:
Код:
originalName = new QLabel("Название: " + originalName_par);

и получаю вместо "Название" несколько знаков вопроса (выглядет примерно так:
НепонимающийНепонимающий??: The Mechanic

Почитал форум - тут вроде все пишут о том как рус. буквы заменяются иероглифами и т.д. о вопросах так ничего и не нашёл. Совсем не давно начал Qt поэтому лучше поподробней, если можно.
СПС!
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Февраль 18, 2011, 13:05 »

Читай раздел Internationalization with Qt в ассистенте. И не используй кириллицу в исходниках.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Archa4
Гость
« Ответ #2 : Февраль 18, 2011, 13:15 »

А как тогда мне делать, если не использовать кирилицу в исходниках?
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #3 : Февраль 18, 2011, 13:23 »

Писать на английском, оборачивая это в QObject::tr и переводить Кьютовыми средствами.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
serg_hd
Хакер
*****
Offline Offline

Сообщений: 668



Просмотр профиля
« Ответ #4 : Февраль 18, 2011, 13:24 »

1.
Код
C++ (Qt)
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
 
QTextCodec* tc = QTextCodec::codecForName("utf-8");
QTextCodec::setCodecForTr(tc); //для всего, что заключено в tr()
QTextCodec::setCodecForCStrings(tc); //для строк
QTextCodec::setCodecForLocale(tc); //для локали
 
//....
 
}
 

2.
а лучше так - http://forum.try-catch.ru/index.php?topic= 193.0 (без пробела перед "193")

3. А ещё лучше - поиск по форуму, тема стотыщ раз поднималась.
« Последнее редактирование: Февраль 18, 2011, 13:28 от serg_hd » Записан

kubuntu/Win7/x64/NetBeans
BRE
Гость
« Ответ #5 : Февраль 18, 2011, 13:24 »

А как тогда мне делать, если не использовать кирилицу в исходниках?

Код
C++ (Qt)
originalName = new QLabel( tr( "Title: %1" ).arg( originalName_par ) );
 
и в дальнейшем переводить хочешь на русский, хочешь на монгольский.
Как это сделать, написано там, куда тебя Пантер направил.

Или если тихо, только для себя, то можно так (ВНИМАНИЕ! Исходники должны быть в Utf8):
Код
C++ (Qt)
originalName = new QLabel( trUtf8( "Название: %1" ).arg( originalName_par ) );
 

Еще тебе сейчас посоветуют использовать QTextCodec::setCodecFor...
Скажу так, лучше не надо, потом хлопоты могут появиться и перелопачивать много придется.  Подмигивающий
Записан
Archa4
Гость
« Ответ #6 : Февраль 18, 2011, 13:30 »

Спасибо за советы!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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