Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: enola от Сентябрь 21, 2006, 07:51



Название: Сглаживание шрифта
Отправлено: enola от Сентябрь 21, 2006, 07:51
Как сделать сабж;
буквы имеют "шероховатость" как бы сгладить?


Название: Сглаживание шрифта
Отправлено: bigirbis от Сентябрь 21, 2006, 08:35
QFont::PreferAntialias
QPainter::TextAntialiasing

Но, вообще, тему надо описывать более подробно.


Название: Сглаживание шрифта
Отправлено: enola от Сентябрь 21, 2006, 11:29
вот так делаю, получается не очень гладко:
Код:

QFont tahomaFont("Tahoma", 0, QFont::Bold);
tahomaFont.setStyleStrategy(QFont::PreferAntialias);

QPainter painter(&bgPixmap);
painter.setRenderHint(QPainter::TextAntialiasing);

// Дата
QDate date = QDate::currentDate();
QString sDate = date.toString("dd.MM.yyyy");
tahomaFont.setPixelSize(33);
painter.setFont(tahomaFont);
painter.setPen(QColor(21, 25, 26));
painter.drawText(58, 40, sDate);
painter.setPen(QColor(255, 255, 255));
painter.drawText(57, 38, sDate);

painter.end();


Название: Сглаживание шрифта
Отправлено: bigirbis от Сентябрь 21, 2006, 11:42
Попробуй на другом шрифте:
Цитировать
QFont::PreferAntialias antialias if possible.


Название: Сглаживание шрифта
Отправлено: enola от Сентябрь 21, 2006, 11:49
попробовал: Helvetica, Times, Arial и не один не сглаживается!?


Название: Сглаживание шрифта
Отправлено: Dendy от Сентябрь 23, 2006, 01:33
Довольно странное поведение QPainter'а в етом случае, возможно даже баг.

QPainter НЕ применяет антиалиасинг к шрифтам, если матрица трансформации имеет только коеффициентьІ трансляции. Ето логично для растровьІх операций - скорость рисования повьІшается в 2-3 раза. Но вьІглядит странно, когда мьІ явно указьІваем:

Код:
painter.setRenderHint( QPainter::TextAntialiasing );


Лечится довольно просто, но некрасиво:

Код:
painter.scale( 1.0001f, 1.0001f );

или
Код:
painter.rotate( 0.0001f );


Название: Сглаживание шрифта
Отправлено: enola от Сентябрь 25, 2006, 06:00
Спасибо, все глаже и глаже :)
А как быть с Label? Его бы тоже сгладить?