Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: QCasper от Март 30, 2006, 08:59



Название: вывод текста с отступом
Отправлено: QCasper от Март 30, 2006, 08:59
для вывода текста использую QPainter::drawText, ту версию метода где текст выводится в прямоугольную область. Хотелось бы узнать как сделать чтобы первая строчка выводилась не от самого левого края этого прямоугольника, а через заданное число точек?


Название: вывод текста с отступом
Отправлено: crocus от Март 30, 2006, 09:08
А случайно не превью пытаешься сделать.


Название: вывод текста с отступом
Отправлено: QCasper от Март 30, 2006, 09:26
Цитата: "crocus"
А случайно не превью пытаешься сделать.


какое превью? да нет, просто допустим есть одна строка, и есть вторая строка. Первая строка с одними свойствами (шрифт, цвет и т.д.), вторая с другими, нужно выводить вторую сразу после первой:

"ПЕРВАЯ СТРОКА" "И СРАЗУ
ЗА НЕЙ ИДЕТ ВТОРАЯ"

вот в данном случае я знаю сколько точек ширина строки "ПЕРВАЯ СТРОКА" и я собираюсь вывести строку "И СРАЗУ ЗА НЕЙ ИДЕТ ВТОРАЯ" в этот общий прямоугольник, но отступив ширину первой.


Название: вывод текста с отступом
Отправлено: Dendy от Март 30, 2006, 11:33
Рисование в прямоугольник - базовая функция, всего не предусмотришь, да и не нужно. Такие финтьІ делаются, к примеру, так:

Код:
void draw_to_rect_with_offset( QPainter * p, const QRect & rect, int offset, const QString & text )
{
  QRect r = rect;
  r.setLeft( r.left() + offset );
  p.drawText( r, Qt::AlignLeft, text, &rect );
}


Название: вывод текста с отступом
Отправлено: QCasper от Март 30, 2006, 12:19
Цитата: "Dendy"
Рисование в прямоугольник - базовая функция, всего не предусмотришь, да и не нужно. Такие финтьІ делаются, к примеру, так:

Код:
void draw_to_rect_with_offset( QPainter * p, const QRect & rect, int offset, const QString & text )
{
  QRect r = rect;
  r.setLeft( r.left() + offset );
  p.drawText( r, Qt::AlignLeft, text, &rect );
}


я так подозреваю, что получится так:
---------------------------------------
|<offset>текст текст текст текст |
|<offset>текст текст текст текст |
|<offset>текст текст текст текст |
---------------------------------------

а мне нужно вот так:
------------------------------------
|<offset>текст текст текст      |
| текст текст текст текст текст |
| текст текст текст текст текст |
-------------------------------------