Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: dr_Begemot от Июль 23, 2010, 12:27



Название: Вывод текста
Отправлено: dr_Begemot от Июль 23, 2010, 12:27
Скажите, должно ли отличаться по результату следующие способы вывода текста:

Код:
painter->drawText(x, y, w, 20, Qt::AlignCenter | Qt::AlignVCenter, text);

тут painter объект класса QPainter
В данном случае все выводиться нормально и без проблем.

А вот если:
Код:
QPainterPath path;
QFont font = painter->font();
path.addText(x, y, font, text);
painter->drawPath(path);

То текст чет жирный очень получается...

Должна ли быть разница?
Может я что-то не так делаю просто?


Название: Re: Вывод текста
Отправлено: BaltikS от Июль 27, 2010, 14:47
оффтоп, но вот эта запись некорректна
Код:
Qt::AlignCenter | Qt::AlignVCenter
Полагаю ы первом коде текст вписывается в прямоугольник, а во втором - рисуется шрифтом от координаты x,y.


Название: Re: Вывод текста
Отправлено: dr_Begemot от Июль 28, 2010, 10:12
оффтоп, но вот эта запись некорректна
Код:
Qt::AlignCenter | Qt::AlignVCenter
Полагаю ы первом коде текст вписывается в прямоугольник, а во втором - рисуется шрифтом от координаты x,y.

Почему не корректна? Во всяком случае работает... Qt::AlignCenter - центрует по горизонтали, а Qt::AlignVCenter по вертикали...


Название: Re: Вывод текста
Отправлено: dr_Begemot от Июль 28, 2010, 10:13
оффтоп, но вот эта запись некорректна
Код:
Qt::AlignCenter | Qt::AlignVCenter
Полагаю ы первом коде текст вписывается в прямоугольник, а во втором - рисуется шрифтом от координаты x,y.

Понятно что в 1м случае в прямоуглоьнике а во 2м от координаты... непонятно почему шрифт разный и как это исправить...


Название: Re: Вывод текста
Отправлено: BaltikS от Июль 28, 2010, 10:33
Qt::AlignHCenter       Centers horizontally in the available space.
Qt::AlignVCenter       Centers vertically in the available space.
Qt::AlignCenter = AlignVCenter | AlignHCenter       Centers in both dimensions.


А если по теме, то что если взять шрифт, явно его задать и попробовать вывести текст первым и вторым способом?