QTextTable 类
The QTextTable class represents a table in a QTextDocument. 更多...
头文件 | #include <QTextTable> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake | QT += gui |
继承 | QTextFrame |
- 所有成员列表,包括继承成员
- QTextTable 是 富文本处理 API 的一部分。
注意: 本类中所有函数均为 可重入的。
公共函数
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()函数来找到表格行的起始和结束位置,以获取每行的起始和结束位置的游标。
可以使用mergeCells()和splitCell()函数来合并和拆分QTextTable内部的行和列。然而,只有跨越多行或多列的单元格才能被拆分。(合并或拆分不会增加或减少行和列的数量。)
请注意,如果您已将多个列和行合并到单个单元格中,您将无法将合并的单元格拆分为跨越多行或多列的新单元格。为了能够拆分跨越多个行和列的单元格,您需要这样做多次迭代。
原始表格 | 假设我们有一个2x3的人名和地址表格。为了合并第一行的两列,我们使用包含row = 0、column = 0、numRows = 1和numColumns = 2的mergeCells()。table->mergeCells(0, 0, 1, 2); |
这给我们以下表格。为了将表格的第一行拆分为两个单元格,我们使用包含numRows和numCols = 1的splitCell()函数。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
这是一个重载的函数。
返回文档中给定位置包含字符的表格单元格。
QTextTableCell QTextTable::cellAt(const QTextCursor &cursor) const
这是一个重载的函数。
返回包含给定光标的表格单元格。
int QTextTable::columns() const
返回表格中的列数。
另请参阅行。
QTextTableFormat QTextTable::format() const
返回表格的格式。
另请参阅设置格式。
void QTextTable::insertColumns(int index, int columns)
在指定索引的列之前插入一系列列。
void QTextTable::insertRows(int index, int rows)
在指定索引的行之前插入一系列行。
void QTextTable::mergeCells(int row, int column, int numRows, int numCols)
将指定行和列处的单元格与其相邻单元格合并为一个单元格。新单元格将跨越numRows行和numCols列。如果numRows或numCols小于单元格当前跨越的行数或列数,此方法将不起作用。
另请参阅分割单元格。
void QTextTable::mergeCells(const QTextCursor &cursor)
这是一个重载的函数。
合并由提供的光标选择的单元格。
另请参阅分割单元格。
void QTextTable::removeColumns(int index, int columns)
从指定索引开始的列中删除一系列列。
void QTextTable::removeRows(int index, int rows)
从指定索引开始的行中删除一系列行。
另请参阅 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() 合并的行。
另请参阅 mergeCells().
© 2024 The Qt Company Ltd. 本文档中包含的贡献是各自所有者的版权。提供的文档按照自由软件基金会发布的 GNU自由文档许可证版本1.3 的条款进行许可。Qt及其相应商标是The Qt Company Ltd.在芬兰和其他国家/地区的商标。所有其他商标均为其各自所有者的财产。