Название: использование символов кирильницы Отправлено: dr_Begemot от Апрель 08, 2009, 12:26 Имеется некий виджет на котором есть QLineEdit *edit.
При работе с редактором форм с символамаи кирильницы все отлично. В функции main создаю экземпляр виджета и вызываю ф-ю: MyWidget->edit->setTitle("Кое что-по русски"); В результате, после MyWidget->show() на форме в строке edit имею следующее: "Êîå ÷òî-ïî ðóññêè" Как с этим боротся? P.S. проект запускаю в MS VS 2005 Название: Re: использование символов кирильницы Отправлено: whirlwind от Апрель 08, 2009, 12:41 идеологически правильно использовать функцию tr() и прочие средсва интернационализации http://doc.trolltech.com/4.5/i18n.html
т.е. писать MyWidget->edit->setTitle(tr("Something in russian")); , потом формировать ts файл, редактировать его linguist.... а можно попробовать подобрать преобразование в QTextCodec, но это плохое решение. Название: Re: использование символов кирильницы Отправлено: Flake от Апрель 08, 2009, 14:09 Ещё QString::fromLocal8Bit("Привет") вроде работает, но самый правильный вариант приведён выше.
Название: Re: использование символов кирильницы Отправлено: Racheengel от Апрель 08, 2009, 15:43 кодеки надо бы заюзать ДО создания QMainWindow...
Название: Re: использование символов кирильницы Отправлено: BlackLagarto от Апрель 08, 2009, 23:24 Код
мне помогло потом просто везде пишется tr("привет"); Название: Re: использование символов кирильницы Отправлено: dr_Begemot от Апрель 14, 2009, 12:22 Код
мне помогло потом просто везде пишется tr("привет"); спасибо, помогло) Название: Re: использование символов кирильницы Отправлено: tohisu от Декабрь 14, 2009, 15:32 Добрый день!
Тоже имею проблему с русскими символами в Qt. Проблема с русским наблюдается абсолютно везде. Включая QtCreator / QtDesigner. Удалось подлечить только QtCreator путем выбора шрифта. В designerе отображается только квадратик... Перечитал несколько тем, но везде советы одни и те же. У меня работает только QString::fromLocal8Bit("Привет"). tr(), QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8")); и все остальное не работает. Библиотеки собирал сам. Система Ubuntu 9.10 системная локаль естественно UTF-8. При сборке библиотек вроде никаких ключей дополнительных нету на этот случай... Плиз самбади хэлп ми! Название: Re: использование символов кирильницы Отправлено: Dendy от Декабрь 14, 2009, 15:41 Простое правило: Не используйте кирилицу в коде. Вообще. Никогда. И будет вам счастье (-:
Название: Re: использование символов кирильницы Отправлено: tohisu от Декабрь 14, 2009, 15:46 Это не выход!
В коде я ее использовать может и не буду, но не оборачивать же все в это уродство: QString::fromLocal8Bit(""). Тем более даже в дезигнере ничего не работает. Или настоящие_программисты_пробелом_не_пользуются? :)))) Надо как-то глобалоно это решить... С библиотеками которые скачивались из репозитроия все было нормально... UPD Так, немного поторопился... Если в main поставить вызов QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8")), то tr() работает корректно. Но все равно можно ли обойтись без этого? Название: Re: использование символов кирильницы Отправлено: Dendy от Декабрь 14, 2009, 15:50 Что оборачивать собрались-то, кирилицу? Так ведь договорились её не использовать (-: Скриншот дезигнера, пожалуйста.
Название: Re: использование символов кирильницы Отправлено: tohisu от Декабрь 14, 2009, 16:05 Примерно так выглядит:
(http://img340.imageshack.us/img340/3473/98297023.png) В предыдущий пост добавил апдэйт. Т.е. tr() вроде заработал, но например такая конструкция все равно не проходит qDebug() << tr(""). Может все-таки при сборке библиотек надо что-то указать? Название: Re: использование символов кирильницы Отправлено: break от Декабрь 14, 2009, 16:53 Цитировать Простое правило: Не используйте кирилицу в коде. Вообще. Никогда. Неправильное это правило - как писать комменты по узкоспециализированным темам - по тематике в которой на русском не все понятно будет новому человеку а уж нга ломанном переведенном на английский и сам через месяц не разберешь... Название: Re: использование символов кирильницы Отправлено: Dendy от Декабрь 14, 2009, 17:33 tohisu, такое ощущение, что не всё в порядке со шрифтами.
break, ну хорошо, в комментариях, в узкоспециализированых задачах, при незнании английского, в коде только для себя - так и быть. Но не забывайте сохранять в UTF-8. Название: Re: использование символов кирильницы Отправлено: Пантер от Декабрь 14, 2009, 18:07 При переходе между платформами такого можно отгрести.... А еще многие редакторы насильно BOM пишут, от которого компиль не работает.
Если очень уж нужны русские символы, то можно создать файл по типу ini типа Код: str_0="Какая-то первая строка" Название: Re: использование символов кирильницы Отправлено: break от Декабрь 14, 2009, 18:38 Цитировать Я, например, в таких случаях в коде пишу на транслите и перевожу в лингвисте. Эт мне кажется все таки изврат - от транслита тошнит, исходники только в UTF-8 храню - никогда никаких проблем не было - для вывода русских символов использую QString::fromUtf8 Название: Re: использование символов кирильницы Отправлено: tohisu от Декабрь 16, 2009, 20:36 А счастье было так близко :)))
Спасибо всем за помощь! Полностью разобрался с проблемой! Оказывается надо было в qtconfig выбрать нужный шрифт (я выбрал Arial) и все :) |