Название: QPainter - кривые шрифты Отправлено: Alexandr_Sky от Октябрь 11, 2007, 08:41 Отрисовываю текст в QPainter. При этом шрифт выглядит очень плохо - расстояния между буквами разные.
Например здесь буква 'ы' наползла на 'х': http://slil.ru/24964145 (http://slil.ru/24964145) painter->setRenderHint(QPainter::TextAntialiasing) и painter->setRenderHint(QPainter::Antialiasing) не помогают. З.Ы. Под Linux (Qt 4.1.4) и под Windows (Qt 4.2.2) одинаково криво. Название: Re: QPainter - кривые шрифты Отправлено: Hellraiser от Октябрь 11, 2007, 10:26 Судя по картинке, QT здесь не причем - скорее всего проблемы со шрифтом, ведь остальные буквы нормальные.
Название: Re: QPainter - кривые шрифты Отправлено: Alexandr_Sky от Октябрь 11, 2007, 12:12 На самом деле проблема не только с этой буквой. Это был просто пример.
А в целом, в строке расстояния между буквами сильно различаются, где-то буквы налезают друг на друга, где-то между ними слишком большой интервал. По поводу шрифта... Qt использует системные шрифты? Почему тогда под вынь и линь одинаково (причем, одинаково плохо) выглядит отрисованный текст? upd: Кое-что начинает проясняться. Я отрисовываю в своих координатах, предварительно сделав scale(). При этом шрифт, подходящий под масштаб - 2pt. Видимо, при масштабировании шрифта этот косяк и появляется. Если уменьшить scale и использовать больший шрифт, то все ок. В принципе, ничто не мешает уменьшить масштаб в n раз и увеличить все координаты в n раз, но так менее удобно их задавать. Может как-то можно это обойти? Название: Re: QPainter - кривые шрифты Отправлено: QCasper от Октябрь 11, 2007, 12:44 У меня тоже подобная проблема была. Мне надо было выводить текст, причем переносить по словам его, я высчитывал и рисовал все это дело вручную. Тоже были такие глюки. Причем они вылазили когда как, могли вылезти, могли не вылезти. Зависело чуть-ли не от компа, где-то почти весь текст пер с такими глюками, где-то хрен дождешься. Самое прикольное, что вопреки всем законам у заказчега глюк ни разу не вылез :) Пофиксилось как-то само собой, а скорее всего из-за того, что я перестал делать это вручную и стал устанавливать нужный текст в QTextDocument, а потом вызывать QTextDocument::drawContents.
|