Russian Qt Forum
Октябрь 01, 2024, 16:33 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Форматирование текста в таблице - работа с QTextDocument  (Прочитано 5887 раз)
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, но видимо нет.

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

Спасибо всем заранее! Подмигивающий
Записан
Makss
Гость
« Ответ #1 : Январь 15, 2011, 14:38 »

Выравнивание по вертикале в ячейках идёт через QTextTableCellFormat и функцию void   setVerticalAlignment ( VerticalAlignment alignment )
Записан
bibelwort
Гость
« Ответ #2 : Январь 15, 2011, 18:31 »

Спасибо! Сработало! Улыбающийся
Записан
RVZ
Гость
« Ответ #3 : Июнь 29, 2011, 12:21 »

Подскажите пожалуйста как его QTextTableCellFormat буквально установить и использовать не могу найти пример кода
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.122 секунд. Запросов: 20.