Класс QTextTable
Класс QTextTable представляет таблицу в QTextDocument. Подробнее...
| Заголовок: | #include <QTextTable> |
| qmake: | QT += gui |
| Наследует: | QTextFrame |
Примечание: Все функции в этом классе являются реентерабельными.
Публичные функции
| void | appendColumns(int count) |
| void | appendRows(int count) |
| QTextTableCell | cellAt(int row, int column) const |
| QTextTableCell | cellAt(int position) const |
| QTextTableCell | cellAt(const QTextCursor &cursor) const |
| int | columns() const |
| QTextTableFormat | format() const |
| void | insertColumns(int index, int columns) |
| void | insertRows(int index, int rows) |
| void | mergeCells(int row, int column, int numRows, int numCols) |
| void | mergeCells(const QTextCursor &cursor) |
| void | removeColumns(int index, int columns) |
| void | removeRows(int index, int rows) |
| void | resize(int rows, int columns) |
| QTextCursor | rowEnd(const QTextCursor &cursor) const |
| QTextCursor | rowStart(const QTextCursor &cursor) const |
| int | rows() const |
| void | setFormat(const QTextTableFormat &format) |
| void | splitCell(int row, int column, int numRows, int numCols) |
- 10 публичных функций унаследованных от QTextFrame
- 4 публичных функций унаследованных от QTextObject
- 31 публичных функций унаследованных от QObject
Дополнительные унаследованные члены
- 1 свойство унаследованное от QObject
- 1 публичный слот унаследованный от QObject
- 2 сигнала унаследованных от QObject
- 11 статических публичных членов унаследованных от QObject
- 1 защищённая функция унаследованная от QTextObject
- 9 защищённых функций унаследованных от QObject
Подробное описание
Класс QTextTable представляет таблицу в QTextDocument.
Таблица — это группа ячеек, упорядоченных в строки и столбцы. Каждая таблица содержит по крайней мере одну строку и один столбец. Каждая ячейка содержит блок и окружена рамкой.
Таблицы обычно создаются и вставляются в документ с помощью функции QTextCursor::insertTable(). Например, мы можем вставить таблицу с тремя строками и двумя столбцами в текущую позицию курсора в редакторе, используя следующие строки кода:
QTextCursor cursor(editor->textCursor());
cursor.movePosition(QTextCursor::Start);
QTextTable *table = cursor.insertTable(rows, columns, tableFormat); Формат таблицы определяется либо при создании таблицы, либо меняется позже с помощью setFormat().
Таблица, которую в данный момент редактирует курсор, находится с помощью QTextCursor::currentTable(). Это позволяет изменить ее формат или размеры после вставки в документ.
Размер таблицы можно изменить с помощью resize() или с помощью insertRows(), insertColumns(), removeRows() или removeColumns(). Используйте cellAt() для извлечения ячеек таблицы.
Начальные и конечные позиции строк таблицы можно найти, перемещая курсор внутри таблицы и используя функции rowStart() и rowEnd() для получения курсоров в начале и конце каждой строки.
Строки и столбцы в QTextTable можно объединять и разбивать, используя функции mergeCells() и splitCell(). Однако, можно разбивать только ячейки, занимающие несколько строк или столбцов. (Объединение или разделение не увеличивает и не уменьшает количество строк и столбцов.)
Обратите внимание, что если вы объединили несколько столбцов и строк в одну ячейку, вы не сможете разбить объединенную ячейку на новые ячейки, занимающие более одной строки или столбца. Чтобы разбить ячейки, занимающие несколько строк и столбцов, необходимо сделать это в несколько итераций.
Предположим, у нас есть таблица 2x3 с именами и адресами. Чтобы объединить оба столбца в первой строке, мы вызываем mergeCells() с row = 0, column = 0, numRows = 1 и numColumns = 2.table->mergeCells(0, 0, 1, 2); |
|
Это даст нам следующую таблицу. Чтобы разбить первую строку таблицы обратно на две ячейки, мы вызываем функцию splitCell() с numRows и numCols = 1.table->splitCell(0, 0, 1, 1); |
|
| В результате мы получим исходную таблицу. |
См. также QTextTableFormat.
Документация по функциям-членам
void QTextTable::appendColumns(int count)
Добавляет count столбцов справа от таблицы.
Эта функция была введена в Qt 4.5.
См. также insertColumns(), insertRows(), resize(), removeRows(), removeColumns() и appendRows().
void QTextTable::appendRows(int count)
Добавляет count строк в нижнюю часть таблицы.
Эта функция была введена в Qt 4.5.
См. также insertColumns(), insertRows(), resize(), removeRows(), removeColumns() и appendColumns().
QTextTableCell QTextTable::cellAt(int row, int column) const
Возвращает ячейку таблицы по заданной строке и столбцу.
QTextTableCell QTextTable::cellAt(int position) const
Это перегруженная функция.
Возвращает ячейку таблицы, содержащую символ по заданной позиции в документе.
QTextTableCell QTextTable::cellAt(const QTextCursor &cursor) const
Это перегруженная функция.
Возвращает ячейку таблицы, содержащую заданный курсор.
int QTextTable::columns() const
Возвращает количество столбцов в таблице.
См. также rows().
QTextTableFormat QTextTable::format() const
Возвращает формат таблицы.
См. также setFormat().
void QTextTable::insertColumns(int index, int columns)
Вставляет заданное количество columns столбцов перед столбцом с указанным index.
См. также insertRows(), resize(), removeRows(), removeColumns(), appendRows(), и appendColumns().
void QTextTable::insertRows(int index, int rows)
Вставляет заданное количество rows строк перед строкой с указанным index.
См. также resize(), insertColumns(), removeRows(), removeColumns(), appendRows(), и appendColumns().
void QTextTable::mergeCells(int row, int column, int numRows, int numCols)
Объединяет ячейку по указанным row и column со смежными ячейками в одну ячейку. Новая ячейка будет охватывать numRows строк и numCols столбцов. Этот метод ничего не делает, если numRows или numCols меньше текущего количества строк или столбцов, охватываемых ячейкой.
Эта функция была введена в Qt 4.1.
См. также splitCell().
void QTextTable::mergeCells(const QTextCursor &cursor)
Это перегруженная функция.
Объединяет ячейки, выбранные заданным cursor.
Эта функция была введена в Qt 4.1.
См. также splitCell().
void QTextTable::removeColumns(int index, int columns)
Удаляет заданное количество columns столбцов, начиная со столбца с указанным index.
См. также insertRows(), insertColumns(), removeRows(), resize(), appendRows(), и appendColumns().
void QTextTable::removeRows(int index, int rows)
Удаляет заданное количество rows строк, начиная со строки с указанным index.
См. также insertRows(), insertColumns(), resize(), removeColumns(), appendRows(), и appendColumns().
void QTextTable::resize(int rows, int columns)
Изменяет размер таблицы, чтобы она содержала необходимое количество rows строк и columns столбцов.
См. также insertRows(), insertColumns(), removeRows(), и removeColumns().
QTextCursor QTextTable::rowEnd(const QTextCursor &cursor) const
Возвращает курсор, указывающий на конец строки, содержащей данный cursor.
См. также rowStart().
QTextCursor QTextTable::rowStart(const QTextCursor &cursor) const
Возвращает курсор, указывающий на начало строки, содержащей данный cursor.
См. также rowEnd().
int QTextTable::rows() const
Возвращает количество строк в таблице.
См. также columns().
void QTextTable::setFormat(const QTextTableFormat &format)
Устанавливает format таблицы.
См. также format().
void QTextTable::splitCell(int row, int column, int numRows, int numCols)
Разделяет указанную ячейку по row и column на массив нескольких ячеек с размерами, заданными numRows и numCols.
Примечание: Разделить ячейку можно только в том случае, если она охватывает несколько строк или столбцов, например, строки, объединённые с помощью mergeCells().
Эта функция была введена в Qt 4.1.
См. также mergeCells().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.6/qtexttable.html