Russian Qt Forum

Qt => Общие вопросы => Тема начата: bibelwort от Январь 14, 2011, 20:45



Название: Форматирование текста в таблице - работа с QTextDocument
Отправлено: bibelwort от Январь 14, 2011, 20:45
Здравствуйте!
У меня вот такая проблемка.
Создаю таблицу в QTextDocument, содержащей несколько колонок. В каждой колонке мне нужно использовать разный шрифт и разное выравнивание текста. Вот, что написано у меня в коде:

...
QTextCursor cursor(data);
cursor.movePosition(QTextCursor::Start);

blockFormat_1.setAlignment(Qt::AlignHCenter|Qt::AlignBottom);
blockFormat_2.setAlignment(Qt::AlignRight|Qt::AlignBottom);

charFormat_1= cursor.charFormat();
charFormat_1.setFont(font_1);
charFormat_2 = cursor.charFormat();
charFormat_2.setFont(font_2);

cell = table->cellAt(row,0);

cellCursor = cell.firstCursorPosition();
cellCursor.setBlockFormat(blockFormat_1);
cellCursor.insertText(QString("text_1"),charFormat_1);

cell_cursor.movePosition(QTextCursor::NextCell);

cellCursor.setBlockFormat(blockFormat_2);
cellCursor.insertText(QString("text_2"),charFormat_2);
...

То есть я создаю два формата блока с разным выравниванием и два формата символов с разным шрифтом и назначаю их разным ячейкам, однако при использовании разных шрифтов и кеглей у меня видно, что текст выровнен по вертикали по верху, а не по низу, хотя я пишу в коде:

blockFormat_1.setAlignment(Qt::AlignHCenter|Qt::AlignBottom);
blockFormat_2.setAlignment(Qt::AlignRight|Qt::AlignBottom);

Скажите пожалуйста, что у меня не так или может посоветуете как по уму сделать? Читал справку и думал, что разобрался с работой QTextDocument, но видимо нет.

Еще раз в двух словах сформулирую проблему: при использовании двух разных шрифтов в соседних столбцах выравнивание текста в них идет по верху, а надо, чтобы базовая линия обоих шрифтов была на одном уровне, то есть должно быть выравнивание по низу.

Спасибо всем заранее! ;)


Название: Re: Форматирование текста в таблице - работа с QTextDocument
Отправлено: Makss от Январь 15, 2011, 14:38
Выравнивание по вертикале в ячейках идёт через QTextTableCellFormat и функцию void   setVerticalAlignment ( VerticalAlignment alignment )


Название: Re: Форматирование текста в таблице - работа с QTextDocument
Отправлено: bibelwort от Январь 15, 2011, 18:31
Спасибо! Сработало! :)


Название: Re: Форматирование текста в таблице - работа с QTextDocument
Отправлено: RVZ от Июнь 29, 2011, 12:21
Подскажите пожалуйста как его QTextTableCellFormat буквально установить и использовать не могу найти пример кода