Russian Qt Forum
Ноябрь 27, 2024, 00:27 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Text antialiasing  (Прочитано 5731 раз)
Alp
Гость
« : Август 25, 2009, 20:58 »

Почему-то после установки painter.setRenderHint(QPainter::TextAntialiasing, 1);
надписи получаются точно такие же, как и без вызова антиалиасинга.
Код
C++ (Qt)
QPainter painter(this);
 
painter.setRenderHint(QPainter::Antialiasing, 1);
painter.setRenderHint(QPainter::SmoothPixmapTransform, 1);
DrawBorderAndBackground( &painter);
 
//Если я прав, то после выполнения этой строчки всё должно стать хорошо
//Однако этого не происходит
painter.setRenderHint(QPainter::TextAntialiasing, 1);
QLabel::paintEvent(event);
 
« Последнее редактирование: Август 25, 2009, 20:59 от Alp » Записан
ритт
Гость
« Ответ #1 : Август 25, 2009, 21:10 »

lol

где связь между описанием проблемы и приложенным кодом?
Записан
Rcus
Гость
« Ответ #2 : Август 25, 2009, 21:15 »

А разве при создании QPainter TextAntialiasing не задан по-умолчанию? У меня сейчас документации пока нет (ST 320G bites the dust), но помню что когда тестировал этот хинт всегда был.
Записан
Alp
Гость
« Ответ #3 : Август 25, 2009, 21:20 »

lol

где связь между описанием проблемы и приложенным кодом?
Связь в том, что  QLabel::paintEvent(event) отрисует текст за меня. Разве это не очевидно?
Записан
Alp
Гость
« Ответ #4 : Август 25, 2009, 21:20 »

А разве при создании QPainter TextAntialiasing не задан по-умолчанию? У меня сейчас документации пока нет (ST 320G bites the dust), но помню что когда тестировал этот хинт всегда был.
Возможно и задан, но от чего так страшно выглядит текст на лейбле?
Записан
ритт
Гость
« Ответ #5 : Август 25, 2009, 21:23 »

lol

где связь между описанием проблемы и приложенным кодом?
Связь в том, что  QLabel::paintEvent(event) отрисует текст за меня. Разве это не очевидно?
загляни в QLabel::paintEvent(event) - и поймёшь (или не поймёшь)...
Записан
Rcus
Гость
« Ответ #6 : Август 25, 2009, 21:28 »

Кстати а разве в таком случае в консоль не должны сыпаться предупреждения о множественных пейнтерах на одном девайсе?
Записан
zenden
Гость
« Ответ #7 : Август 26, 2009, 01:00 »

Код
C++ (Qt)
QFont font;
  font.setFamily(...);
font.setStyleStrategy(QFont::PreferAntialias);  // <----
painter.setFont(font);
 

Кстати, кто знает как сделать нормальный антиалисинг?
Интересует под виндой. Если в винде включен ClearType, всё нормально.
Если же нет, сглаживание в QPainter калечит шрифты.
« Последнее редактирование: Август 26, 2009, 01:04 от zenden » Записан
Alp
Гость
« Ответ #8 : Август 26, 2009, 01:05 »

Спасибо, это то, что надо было. Никогда бы не додумался, что дело в QFont'е.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.081 секунд. Запросов: 21.