ЗАО «ЗЭО»

Техническая поддержка пользователей => ОС Linux, U-Boot => Тема начата: bone от 12 Ноября, 2010, 05:41:53

Название: FreeType шрифты в Qt
Отправлено: 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());
Название: Re: FreeType шрифты в Qt
Отправлено: asv от 12 Ноября, 2010, 10:20:14
<qt-src>/doc/html/qt-embedded-fonts.html
Название: Re: FreeType шрифты в Qt
Отправлено: scad от 12 Ноября, 2010, 12:51:04
Для поддержки 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
Название: Re: FreeType шрифты в Qt
Отправлено: laborer от 13 Ноября, 2010, 11:25:49
Для поддержки 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