Russian Qt Forum

Qt => Qt Embedded => Тема начата: tohisu от Апреля 28, 2010, 16:27



Название: QtEmbedded и шрифты в крапинку...
Отправлено: tohisu от Апреля 28, 2010, 16:27
Доброго времени суток!

Столкнулись с такой проблемой в шрифтах:
Есть устройство которое умеет отображать только 4 цвета.
С помощью утилиты makeqpf мы создали некоторый набор шрифтов (с разрешением qpf2) и выложили их на данное устройство.
В устройстве с помощью QFontDatabase выбираем нужный шрифт и устанавливаем его основным шрифтом. Шрифт устанавливается, но отображается очень плохо, как будто бы порванный (не хватает пиксилей). Играли с настройками стилей QFont, но никаких интересных результатов это не дало.

Код:
QFontDatabase *fdb = new QFontDatabase();
QFont myFont;
myFont.setStyleHint(QFont::Serif, QFont::PreferAntialias);
myFont.setStyle(QFont::StyleNormal);
myFont = fdb->font(getParam("sysfont", "unifont").toString(), "normal", 20);
myFont.setStyleHint(QFont::Serif, QFont::PreferAntialias);
myFont.setStyle(QFont::StyleNormal);
this->setFont(myFont);
delete fdb;

Подскажите пожалуйста в чем может быть дело?

P.s. Также создавали файл fontdir, примерно со следующим наполнением:
Код:
DejaVuSans dejavu_sans_16_50.qpf2 FT n 50 160 s
Courier courier_20_50.qpf2 FT2 n 0 0 n

но также, никаких интересных результатов это не принесло...


Название: Re: QtEmbedded и шрифты в крапинку...
Отправлено: Rcus от Апреля 28, 2010, 18:27
А если взять один из готовых шрифтов? И еще мне кажется что при 4 цветах (градации серого?) лучше отключать антиалиасинг совсем.


Название: Re: QtEmbedded и шрифты в крапинку...
Отправлено: tohisu от Апреля 29, 2010, 09:23
Пробовали с готовыми шрифтами, результат тот же.
Да, 4 цвета - это черный белый и градация серого :)
Пробовали отключать антиалиясинг следующим методом myFont.setStyleHint(QFont::Serif, QFont::NoAntialiasing);, а также отдельно устанавливая style strategy ,  результат тот же. Честно говоря, пробовали передать все возможные перечисления в стратегию стиля и в стайл хинт, в некоторых вариантах шрифт улучшался на несколько пикселей, но не более.
Через fontdir вместо флага s подставляли флаги u и a, шрифт выглядел коряво, а русские буквы не отображались вовсе.
А как можно еще отключить антиалиясинг?