стоит нарисовать ячейку, с такой высотой, что бы вмешался текст. Можете что-то другое может посоветовать?
Ну я к сож. не силён в графике Qt пока.
Суть проблемы в том, что в каждом шрифте (TrueType сейчас в основном испльзуются) есть так называемые метрики, они основываются на матмодели шрифта и носят статический характер, то есть они просто для шрифта данного размера (и модификаций) -- константы. Типичный современный шрифт -- это на самом деле программа, написанная на специальном языке, который интерпретируется графической подсистемой операционки для отрисовки глифов. И когда шрифт рисуется, управление передаётся внутренней программе шрифта, и она применно в рамках тех метрих и боксов, что она выще обещала, рисует глифы. Проблема вся в этом "примерно" -- когда шрифты рисуются, они могут быть повёрнуты как угодно, наклонены, растянуты, вставлены лигатуры, применён кернинг.... Дофига всего. И это всё программа шрифта учесть не в состоянии -- у неё главная задача -- быстро рисовать глифы, потому что это важнее чем точность попадания в боксы. Поэтому такими номинальными методами в принципе нельзя это решить
Я бы дал тебе совет -- ограничиться простыми шрифтами, без модификаций (жирности и наклонов, зачёкра, подчёрка, и т.п.) желательно ещё и моноширинными (но не обязательно) . Тогда может быть такой метод как твой если и не будет работать на 100%, но по крайней мере в 95% случаев не будет лажать.
Либо если италик нужен как воздух -- найти другой шрифт, который не лажает.
Обсуждают сегодня