Класс 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
Статические открытые члены
| const QMetaObject | staticMetaObject |
- 9 статических открытых членов, унаследованных от QObject
Дополнительные унаследованные члены
- 1 свойство, унаследованное от QObject
- 1 открытый слот, унаследованный от QObject
- 2 сигнала, унаследованные от 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/qt-5.12/qtexttable.html