Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Абракадабра в combobox 
:(
    Опции темы
Mormishka
Дата 18.9.2011, 09:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 236
Регистрация: 25.8.2010

Репутация: нет
Всего: нет



Как написать на русском? 
Пишет абракадабру?
Код

ui.comboBox_cub->addItem("Элемент");

PM MAIL   Вверх
borisbn
Дата 18.9.2011, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 48
Всего: 135



В main.cpp после создания QApplication добавляешь
Код
QTextCodec::setCodecForCStrings( QTextCodec::codecForName( "Windows-1251" ) ;

ну и
Код
#include <QTextCodec>

в начале.
Вместо "Windows-1251" впиши кодировку, в которой написан твой исходник.


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
math64
Дата 19.9.2011, 07:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 23
Всего: 72



Рекомендуется делать так:
1.Интерфейс пишется на английском:
Код

ui.comboBox_cub->addItem(tr("Element"));

2.Создаётся с помощью lupdate и linguist файл перевода
3.Загружется переводчик (после создания приложения или внутри конструктора приложения, если Вы определяете свой класс приложения)):
Код

QTranslator translator;
translator.load("myapp_" + QLocale::system().name());
app.installTranslator(translator);

PS: можно наоборот, писать интерфейс по русски и при необходимости сделать перевод на английский (кодировка исходников - UTF8):
Код

ui.comboBox_cub->addItem(trUtf8("Элемент"));


Это сообщение отредактировал(а) math64 - 19.9.2011, 07:41
PM   Вверх
spyswamp
Дата 23.9.2011, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 349
Регистрация: 18.8.2006

Репутация: 1
Всего: 7



Я делал проще:

Код

QString::fromStdWString(L"Лолшто?")


P.S. Windows-1251 в топку однозначно и в принципе.

Добавлено через 3 минуты и 51 секунду
Но самый правильный подход, безусловно, с tr().

Это сообщение отредактировал(а) spyswamp - 23.9.2011, 19:05


--------------------
- why you call it beta?
- cuz it's betta then nothin'
PM MAIL   Вверх
bsa
Дата 25.9.2011, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 24
Всего: 196



Цитата(spyswamp @  23.9.2011,  19:03 Найти цитируемый пост)
Я делал проще:
Цитата(spyswamp @  23.9.2011,  19:03 Найти цитируемый пост)
P.S. Windows-1251 в топку однозначно и в принципе.

А ты не подумал, в какой кодировке у тебя исходник? Под другой кодировкой рабочего стола и другим компилятором может уже не собраться.
PM   Вверх
spyswamp
Дата 26.9.2011, 23:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 349
Регистрация: 18.8.2006

Репутация: 1
Всего: 7



bsa, только UTF-8, только хардкор!


--------------------
- why you call it beta?
- cuz it's betta then nothin'
PM MAIL   Вверх
bsa
Дата 27.9.2011, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 24
Всего: 196



spyswamp, пробовал собирать с помощью MSVS?
PM   Вверх
spyswamp
Дата 27.9.2011, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 349
Регистрация: 18.8.2006

Репутация: 1
Всего: 7



bsa, ты конкретней задавай вопросы, если чем-то интересуешься. У меня все исходники под MSVS пяти активных проектов в UTF-8. Qt-проекты с помощью MSVS ни разу в жизни не собирал. Хочешь сказать, что если исходники приложения на Qt будут в UTF-8, то MSVS их не скомпилирует?


--------------------
- why you call it beta?
- cuz it's betta then nothin'
PM MAIL   Вверх
math64
Дата 27.9.2011, 14:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2505
Регистрация: 12.4.2007

Репутация: 23
Всего: 72



MSVS соберёт проект Qt в Utf8 - но нужно следить, чтобы при добавлении нового файла в проект он был в кодировке Utf8 (по умолчанию кодировка 1251)
PM   Вверх
spyswamp
Дата 27.9.2011, 23:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 349
Регистрация: 18.8.2006

Репутация: 1
Всего: 7



math64, это как ты студию настроишь. Вообще, честно говоря, не замечал проблем со сборкой, если исходники в разных кодировках. Бывали, само-собой, такие заскоки, если новые люди на проекте херачили сорцы в 1251.

Еще хотелось бы, честно, комментарий от bsa. Вдруг он какую-то хитрую особенность имел ввиду, о которой лучше знать, чем не знать.


--------------------
- why you call it beta?
- cuz it's betta then nothin'
PM MAIL   Вверх
bsa
Дата 28.9.2011, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 24
Всего: 196



spyswamp, нет. я ничего хитрого не имел в виду. Но, например, gcc с кодировкой cp1251 не дружит в подобных литералах.
И вообще, я сторонник использования английского и tr()...
PM   Вверх
spyswamp
Дата 28.9.2011, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 349
Регистрация: 18.8.2006

Репутация: 1
Всего: 7



bsa, tr() полностью поддерживаю (выше писал). Но вопрос часто может заключаться в том, что нужен ли анлглийский в принципе конечному потребителю. Кстати, знание английского так же, зачастую, оставляет желать лучшего у разработчиков. smile А специальные люди, пишущие текст, есть не во всех компаниях. И получается "моя твоя не понимать" в итоге. smile


--------------------
- why you call it beta?
- cuz it's betta then nothin'
PM MAIL   Вверх
bsa
Дата 28.9.2011, 17:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 24
Всего: 196



Цитата(spyswamp @  28.9.2011,  18:14 Найти цитируемый пост)
Кстати, знание английского так же, зачастую, оставляет желать лучшего у разработчиков.
А чья это проблема? Ну пусть транслит использует тогда...
PM   Вверх
borisbn
Дата 28.9.2011, 18:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 48
Всего: 135



Господа, IMHO вы переусердствуете...
Если программа предназначается исключительно для российского пользователя, а также вообще нет вариантов портировать её не на windows (либо она по-полной использует API венды, либо это тупо не нужно), то делать исходники в Win-1251 и писать текст на русском без tr - вполне оправдано. Некоторые наши проекты полностью подпадают под указанные условия. Я, правда, использую tr, но внутри пишу по-русски и в 1251.


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
bsa
Дата 28.9.2011, 22:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 24
Всего: 196



Цитата(borisbn @  28.9.2011,  19:32 Найти цитируемый пост)
вообще нет вариантов портировать её не на windows

Сегодня нет, а завтра запускать под Wine придется... Имхо, лучше не пренебрегать tr. Тем более, что он в любом случае короче, чем QString::fromLatin1 или QLatin1String.  smile 
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0643 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.