Класс QTextTable
Класс QTextTable представляет таблицу в QTextDocument. Подробнее...
| Заголовок: | #include <QTextTable> |
| CMake: | find_package(Qt6 COMPONENTS Gui REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| 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) |
Подробное описание
Таблица — это группа ячеек, упорядоченных в строки и столбцы. Каждая таблица содержит как минимум одну строку и один столбец. Каждая ячейка содержит блок и окружена рамкой.
Обычно таблицы создаются и вставляются в документ с помощью функции 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 столбцов справа от таблицы.
См. также insertColumns(), insertRows(), resize(), removeRows(), removeColumns(), и appendRows().
void QTextTable::appendRows(int count)
Добавляет count строк в нижнюю часть таблицы.
См. также insertColumns(), insertRows(), resize(), removeRows(), removeColumns(), и appendColumns().
QTextTableCell QTextTable::cellAt(int row, int column) const
Возвращает ячейку таблицы по заданной row и column.
QTextTableCell QTextTable::cellAt(int position) const
Это перегруженная функция.
Возвращает ячейку таблицы, содержащую символ по заданному position в документе.
QTextTableCell QTextTable::cellAt(const QTextCursor &cursor) const
Это перегруженная функция.
Возвращает ячейку таблицы, содержащую заданный cursor.
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 меньше текущего числа строк или столбцов, охватываемых ячейкой.
См. также splitCell().
void QTextTable::mergeCells(const QTextCursor &cursor)
Это перегруженный метод.
Объединяет ячейки, выбранные заданным cursor.
См. также 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().
void QTextTable::splitCell(int row, int column, int numRows, int numCols)
Разделяет указанную ячейку по row и column на массив нескольких ячеек с размерами, заданными numRows и numCols.
Примечание: Разделить можно только ячейки, занимающие несколько строк или столбцов, например, строки, объединенные с помощью mergeCells().
См. также mergeCells().
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.0/qtexttable.html