QTextTable Class

QTextTable 类表示QTextDocument 中的表格 ... 更多...

头文件: #include <QTextTable>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
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(const QTextCursor &cursor) const
QTextTableCell cellAt(int position) 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() 函数获取每一行的起始和结束光标,即可找到表格行的起始和结束位置。

可以使用mergeCells() 和splitCell() 函数合并和拆分 QTextTable 中的行和列。不过,只有跨多行或多列的单元格才能被拆分。(合并或拆分不会增加或减少行或列的数量)。

请注意,如果将多列和多行合并为一个单元格,则无法将合并后的单元格拆分为跨多行或多列的新单元格。要想拆分跨多行多列的单元格,需要多次迭代。

原始表格假设我们有一个包含姓名和地址的 2x3 表格。要合并第一行的两列,我们调用mergeCells()row = 0、column = 0、numRows = 1 和numColumns = 2。
    table->mergeCells(0, 0, 1, 2);
这样就得到了下表。要将表格的第一行拆分为两个单元格,我们调用splitCell() 函数,其中numRowsnumCols = 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

返回表格中rowcolumn 处的表格单元格。

另请参阅 columns() 和rows()。

QTextTableCell QTextTable::cellAt(const QTextCursor &cursor) const

这是一个重载函数。

返回包含给定cursor 的表格单元格。

QTextTableCell QTextTable::cellAt(int position) const

这是一个重载函数。

返回文档中position 处包含字符的表格单元格。

int QTextTable::columns() const

返回表格中的列数。

另请参阅 rows()。

QTextTableFormat QTextTable::format() const

返回表格的格式。

另请参见 setFormat()。

void QTextTable::insertColumns(int index, int columns)

在指定index 的列之前插入若干columns

另请参阅 insertRows(),resize(),removeRows(),removeColumns(),appendRows() 和appendColumns() 。

void QTextTable::insertRows(int index, int rows)

在指定index 的记录前插入若干rows

另请参阅 resize(),insertColumns(),removeRows(),removeColumns(),appendRows() 和appendColumns() 。

void QTextTable::mergeCells(int row, int column, int numRows, int numCols)

将指定rowcolumn 的单元格与相邻单元格合并为一个单元格。新单元格将跨越numRows 行和numCols 列。如果numRowsnumCols 小于单元格所跨的当前行数或列数,则此方法不会执行任何操作。

另请参见 splitCell()。

void QTextTable::mergeCells(const QTextCursor &cursor)

这是一个重载函数。

合并由cursor 所选的单元格。

另请参见 splitCell().

void QTextTable::removeColumns(int index, int columns)

从指定index 的列开始,删除若干columns

另请参阅 insertRows(),insertColumns(),removeRows(),resize(),appendRows() 和appendColumns() 。

void QTextTable::removeRows(int index, int rows)

从指定的index 行开始,删除若干rows

另请参阅 insertRows(),insertColumns(),resize(),removeColumns(),appendRows() 和appendColumns() 。

void QTextTable::resize(int rows, int columns)

调整表格大小,以包含所需数量的rowscolumns

另请参阅 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)

rowcolumn 上指定的单元格拆分成一个由多个单元格组成的数组,单元格的尺寸由numRowsnumCols 指定。

注意: 只能分割跨多行或多列的单元格,如使用mergeCells() 合并的行。

另请参阅 mergeCells()。

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.