qpainterpath.addtext игнорирует вес qfont - PullRequest
1 голос
/ 23 ноября 2010

Используя Qt 4.7.0, нам нужно немного текста, чтобы он частично отображался между обычным и жирным шрифтом. Вот что мы делаем:

В методе Paint нашего подкласса QGraphicsObject у нас есть QFont, который мы называем setWeight(58). Мы создаем QPainterPath и вызываем его addText метод, передавая наш QFont.

Затем мы используем параметр QPainter для вызова drawPath, передавая наш QPainterPath.

Мы обнаружили, что изменение веса шрифта с 50 до 62 не имеет значения в том, как оно нарисовано. При шрифте от 63 до 75 шрифт выделяется жирным шрифтом.

Как мы можем заставить fontWeight работать так, как мы ожидаем?

1 Ответ

1 голос
/ 03 февраля 2011

За документация :

Устанавливает вес шрифта на вес, который должен быть значением из QFont :: Перечисление веса.

Страница W3C о жирности шрифта CSS имеет хорошее объяснение того, как CSS обрабатывает это; документация Qt говорит, что она делает нечто подобное. В основном, применяется некоторая эвристика, чтобы попытаться отобразить значение веса в соответствующую версию шрифта (обычный, жирный, тяжелый и т. Д.)

Может быть возможно (возможно, обрисовав в общих чертах QPainterPath?) Глифы определенного шрифта чуть толще, чем обычно, но результаты почти наверняка будут разочаровывающими. Дизайнеры шрифтов приложили много усилий, чтобы шрифты выглядели хорошо при определенных весах. Когда вы отступаете от этого (скажем, выделяя каждый глиф), вся эта оптимизация дизайна теряется.

...