class QTextTable#

QTextTable表示一个QTextDocument中的表格。有关更多信息,请参阅[更多]。…

Inheritance diagram of PySide6.QtGui.QTextTable

摘要#

方法#

注意

本文档可能包含自动从C++翻译到Python的片段。我们欢迎对片段翻译的贡献。如果您发现翻译有问题,也可以通过在https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们

详细说明#

警告

本节包含自动从C++翻译到Python的片段,可能含有错误。

表格是由行和列有序组成的单元格组。每个表格至少包含一行和一列。每个单元格包含一个块,并周围有边框。

表格通常使用insertTable()函数创建并插入到文档中。例如,我们可以在编辑器的当前光标位置使用以下代码行插入一个3行2列的表格

cursor = QTextCursor(editor.textCursor())
cursor.movePosition(QTextCursor.Start)

table = cursor.insertTable(rows, columns, tableFormat)

表格的格式是在创建表格时定义的,或者在之后通过setFormat()进行更改。

当前由光标编辑的表格可以通过currentTable()找到。这将允许在将其插入文档后更改其格式或尺寸。

可以使用resize()或使用insertRows()insertColumns()removeRows()removeColumns()来更改表格的大小。使用cellAt()来检索表格单元格。

通过在表格内部移动光标,并使用rowStart()rowEnd()函数,可以获得每行的起始和结束位置的光标。

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

注意,如果您已经将多个列和行合并到单个单元格中,您将无法将合并的单元格拆分成跨越一个以上行或列的新单元格。要分开跨越多个行和列的单元格,您需要迭代进行。

texttable-split1原始表格

假设我们有一个2x3的包含姓名和地址的表格。要将第一行中的两列合并,我们调用带有row = 0、column = 0、numRows = 1和numColumns = 2的mergeCells()

table.mergeCells(0, 0, 1, 2)

texttable-merge2

这会得到以下表格。要将表格的第一行拆分成两个单元格,我们使用具有numRowsnumCols = 1的splitCell()函数。

table.splitCell(0, 0, 1, 1)

texttable-split3拆分后的表格

这将恢复原始表格。

另请参阅

QTextTableFormat

__init__(doc)#
参数:

docQTextDocument

appendColumns(count)#
参数:

count – int

在表格右侧添加count列。

appendRows(count)#
参数:

count – int

在表格底部添加count行。

cellAt(c)#
参数:

cQTextCursor

返回类型:

QTextTableCell

这是一个重载函数。

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

cellAt(position)
参数:

position – int

返回类型:

QTextTableCell

这是一个重载函数。

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

cellAt(row, col)
参数:
  • row – int

  • col – int

返回类型:

QTextTableCell

返回表格中给定 rowcolumn 的单元格。

另请参阅

columns() rows()

columns()#
返回类型:

int

返回表格中的列数。

另请参阅

rows()

format()#
返回类型:

QTextTableFormat

返回表格的格式。

另请参阅

setFormat()

insertColumns(pos, num)#
参数:
  • pos – int

  • num – int

在指定 index 的列之前插入指定数量的 columns

insertRows(pos, num)#
参数:
  • pos – int

  • num – int

在指定位置的行之前插入指定数量的 rows

mergeCells(cursor)#
参数:

cursorQTextCursor

这是一个重载函数。

合并由提供的 cursor 选中的单元格。

另请参阅

splitCell()

mergeCells(row, col, numRows, numCols)
参数:
  • row – int

  • col – int

  • numRows – int

  • numCols – int

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

另请参阅

splitCell()

removeColumns(pos, num)#
参数:
  • pos – int

  • num – int

从指定索引的列开始,移除一定数量的columns

removeRows(pos, num)#
参数:
  • pos – int

  • num – int

从指定索引的行开始,移除一定数量的rows

resize(rows, cols)#
参数:
  • rows – int

  • cols – int

将表格的大小调整为所需的行数和列数。

rowEnd(c)#
参数:

cQTextCursor

返回类型:

QTextCursor

返回一个指向包含给定 cursor 的行末的指针。

另请参阅

rowStart()

rowStart(c)#
参数:

cQTextCursor

返回类型:

QTextCursor

返回一个指向包含给定 cursor 的行开始的指针。

另请参阅

rowEnd()

rows()#
返回类型:

int

返回表中行的数量。

另请参阅

columns()

setFormat(format)#
参数:

formatQTextTableFormat

设置表的 format

另请参阅

format()

splitCell(row, col, numRows, numCols)#
参数:
  • row – int

  • col – int

  • numRows – int

  • numCols – int

将指定行和列的单元格拆分成具有由 numRowsnumCols 指定维度的多个单元格数组。

注意

只能拆分跨越多行或多列的单元格,例如使用 mergeCells() 合并的行。

另请参阅

mergeCells()