Класс 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
Возвращает ячейку таблицы в заданной строке и столбце.
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)
Вставляет заданное количество столбцов перед столбцом с заданным индексом.
См. также insertRows(), resize(), removeRows(), removeColumns(), appendRows(), и appendColumns().
void QTextTable::insertRows(int index, int rows)
Вставляет заданное количество строк перед строкой с заданным индексом.
См. также 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.2/qtexttable.html