ЗАО «ЗЭО»
Техническая поддержка пользователей => ОС Linux, U-Boot => Тема начата: bone от 12 Ноября, 2010, 05:41:53
-
Какие параметры надо прописать в файле .config, чтобы при сборке Buildroot была включена поддержка русских FreeType шрифтов в Qt? В частности мы хотим использовать шрифты семейства DejaVu. В данный момент на формах созданых в Qt Desinger данный шрифт отображается в виде кдвадратов (в том числе цифры и английские буквы), но при этом они меняют свой размер, если в стилях css задавать разный размер шрифта. Семейство и размер шрифта задается в отдельном файле со стилями, который подгружается программно.
Используется Qt 4.6
Следующий код в программе не дает результата (исходники в UTF-8).
QLocale::setDefault(QLocale(QLocale::Russian,QLocale::RussianFederation));
QTextCodec *codec = QTextCodec::codecForName("UTF-8");
QTextCodec::setCodecForLocale(codec);
QTextCodec::setCodecForTr(QTextCodec::codecForLocale());
QTextCodec::setCodecForCStrings(QTextCodec::codecForLocale());
-
<qt-src>/doc/html/qt-embedded-fonts.html
-
Для поддержки freetype шрифтов конфигурируйте с ключом -qt-freetype:
./configure -qt-freetype
Лучше брать Qt 4.5.2. В 4.6 и более новых какие-то проблемы наблюдаются, см. тут:
http://www.zao-zeo.ru/forum/index.php?topic=436.0
и тут: http://bugreports.qt.nokia.com/browse/QTBUG-7904
-
Для поддержки freetype шрифтов конфигурируйте с ключом -qt-freetype:
./configure -qt-freetype
Лучше брать Qt 4.5.2. В 4.6 и более новых какие-то проблемы наблюдаются, см. тут:
http://www.zao-zeo.ru/forum/index.php?topic=436.0
и тут: http://bugreports.qt.nokia.com/browse/QTBUG-7904
Что касается бага QTBUG-7904, то там указывают workaround с "#define QT_QLOCALE_USES_FCVT". Я помню у себя этот идентификатор и такие проблемы со 100%-ой загрузкой CPU. У меня они проявлялись при вызове методов QString работающих с плавучкой. А QString используется практически везде, так что эта проблема может вылезти где угодно.
У вас тулчейн наверное с uCLibc? В моём случае это было так и причина тому - не полное соответствие uCLibc стандартам. Собственно, для меня эта ошибка была одной из причин перехода на тулчейн с glibc. И версия Qt тут кажется не причём: я в гугле находил похожие проблемы ещё с Qt 3.x