PySide6.QtWidgets.QTableView

class QTableView

QTableView 类提供了一个表格视图的默认模型/视图实现。更多

PySide6.QtWidgets.QTableView 的继承图

继承者: QTableWidget

概要

属性

方法

插槽

注意

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

详细描述

../../_images/fusion-tableview.png

一个QTableView实现了一个显示模型项目的表格视图。这个类用于提供以前由QTable类提供的标准表格,但使用Qt的模型/视图架构提供的更灵活的方法。

QTableView 类是 Model/View Classes 之一,并且是 Qt 的 model/view framework 的一部分。

QTableView 实现了由 QAbstractItemView 类定义的接口,使其能够显示从 QAbstractItemModel 类派生的模型提供的数据。

视觉外观

表格有一个垂直标题,可以通过verticalHeader()函数获取,以及一个水平标题,可以通过horizontalHeader()函数获取。表格中每行的高度可以通过rowHeight()找到;同样,列的宽度可以通过columnWidth()找到。由于这些都是普通的部件,你可以使用它们的hide()函数隐藏它们。每个标题都配置了highlightSectionssectionsClickable属性,设置为true

行和列可以通过hideRow()hideColumn()showRow()showColumn()来隐藏和显示。它们可以通过selectRow()selectColumn()来选择。表格将根据showGrid属性显示网格。

表格视图中显示的项目,与其他项目视图中的项目一样,使用标准的delegates进行渲染和编辑。然而,对于某些任务,有时能够在表格中插入小部件是有用的。小部件通过setIndexWidget()函数为特定索引设置,并通过indexWidget()函数稍后检索。

qtableview-resized1

默认情况下,表格中的单元格不会扩展以填充可用空间。

您可以通过拉伸最后一个标题部分使单元格填充可用空间。使用horizontalHeader()verticalHeader()访问相关标题,并设置标题的stretchLastSection属性。

要根据每列或每行的空间需求分配可用空间,请调用视图的resizeColumnsToContents()resizeRowsToContents()函数。

坐标系

对于一些特殊形式的表格,能够在行和列索引与小部件坐标之间进行转换是非常有用的。rowAt() 函数提供了指定行在视图中的 y 坐标;行索引可用于通过 rowViewportPosition() 获取相应的 y 坐标。columnAt()columnViewportPosition() 函数提供了 x 坐标和列索引之间的等效转换操作。

另请参阅

QTableWidget 视图类 QAbstractItemView 表格 模型 示例

注意

当使用from __feature__ import true_property时,属性可以直接使用,否则通过访问器函数使用。

property cornerButtonEnabledᅟ: bool

此属性表示左上角的按钮是否启用。

如果此属性为true,则表格视图左上角的按钮将被启用。点击此按钮将选择表格视图中的所有单元格。

此属性默认情况下为 true

Access functions:
property gridStyleᅟ: Qt.PenStyle

此属性用于绘制网格的笔样式。

此属性保存绘制网格时使用的样式(参见 showGrid )。

Access functions:
property showGridᅟ: bool

此属性表示是否显示网格。

如果此属性为true,则为表格绘制网格;如果属性为false,则不绘制网格。默认值为true。

Access functions:
property sortingEnabledᅟ: bool

此属性表示是否启用了排序。

如果此属性为true,则启用表格排序。如果此属性为false,则不启用排序。默认值为false。

注意

将属性设置为true,使用setSortingEnabled()会立即触发调用sortByColumn(),并使用当前的排序部分和顺序。

另请参阅

sortByColumn()

Access functions:
property wordWrapᅟ: bool

此属性保存项目文本的自动换行策略。

如果此属性为true,则项目文本在必要时会在单词断点处换行;否则,它根本不会换行。此属性默认情况下为true

请注意,即使启用了换行功能,单元格也不会扩展以适应所有文本。省略号将根据当前的textElideMode插入。

Access functions:
__init__([parent=None])
Parameters:

父级QWidget

构建一个带有parent的表格视图来表示数据。

另请参阅

QAbstractItemModel

clearSpans()

移除表格视图中的所有行和列跨度。

另请参阅

setSpan()

columnAt(x)
Parameters:

x – 整数

Return type:

整数

返回给定x坐标x在内容坐标中所处的列。

注意

如果给定的坐标无效(没有列),此函数返回 -1。

另请参阅

rowAt()

columnCountChanged(oldCount, newCount)
Parameters:
  • oldCount – int

  • newCount – int

每当添加或删除列时,都会调用此插槽。之前的列数由oldCount指定,新的列数由newCount指定。

columnMoved(column, oldIndex, newIndex)
Parameters:
  • column – 整数

  • oldIndex – int

  • newIndex – int

调用此插槽以更改表视图中给定column的索引。旧索引由oldIndex指定,新索引由newIndex指定。

另请参阅

rowMoved()

columnResized(column, oldWidth, newWidth)
Parameters:
  • column – 整数

  • oldWidth – int

  • newWidth – int

此插槽用于更改给定column的宽度。旧宽度由oldWidth指定,新宽度由newWidth指定。

另请参阅

rowResized()

columnSpan(row, column)
Parameters:
  • row – int

  • column – 整数

Return type:

整数

返回表格元素在(row, column)处的列跨度。默认值为1。

另请参阅

setSpan() rowSpan()

columnViewportPosition(column)
Parameters:

– int

Return type:

整数

返回给定column在内容坐标中的x坐标。

columnWidth(column)
Parameters:

– int

Return type:

整数

返回给定column的宽度。

gridStyle()
Return type:

PenStyle

另请参阅

setGridStyle()

属性 gridStyleᅟ 的获取器。

hideColumn(column)
Parameters:

– int

隐藏给定的 column

另请参阅

showColumn() hideRow()

hideRow(row)
Parameters:

– 整数

隐藏给定的 row

另请参阅

showRow() hideColumn()

horizontalHeader()
Return type:

QHeaderView

返回表格视图的水平标题。

isColumnHidden(column)
Parameters:

– int

Return type:

布尔

如果给定的column是隐藏的,则返回true;否则返回false

另请参阅

isRowHidden()

isCornerButtonEnabled()
Return type:

布尔

属性 cornerButtonEnabledᅟ 的获取器。

isRowHidden(row)
Parameters:

– 整数

Return type:

布尔

如果给定的row是隐藏的,则返回true;否则返回false

另请参阅

isColumnHidden()

isSortingEnabled()
Return type:

布尔

属性 sortingEnabledᅟ 的获取器。

resizeColumnToContents(column)
Parameters:

– int

根据用于渲染列中每个项目的委托的大小提示,调整给定的column的大小。

注意

只有可见的列会被调整大小。重新实现 sizeHintForColumn() 以调整隐藏列的大小。

另请参阅

resizeColumnsToContents() sizeHintForColumn() resizeContentsPrecision()

resizeColumnsToContents()

根据用于渲染每列中项目的委托的大小提示调整所有列的大小。

另请参阅

resizeColumnToContents() sizeHintForColumn() resizeContentsPrecision()

resizeRowToContents(row)
Parameters:

– 整数

根据用于渲染行中每个项目的委托的大小提示,调整给定的row的大小。

另请参阅

resizeRowsToContents() sizeHintForRow() resizeContentsPrecision()

resizeRowsToContents()

根据用于渲染每行中每个项目的委托的大小提示调整所有行的大小。

另请参阅

resizeRowToContents() sizeHintForRow() resizeContentsPrecision()

rowAt(y)
Parameters:

y – 整数

Return type:

整数

返回给定y坐标y所在的行,该坐标位于内容坐标系中。

注意

如果给定的坐标无效(没有行),此函数返回 -1。

另请参阅

columnAt()

rowCountChanged(oldCount, newCount)
Parameters:
  • oldCount – int

  • newCount – int

每当添加或删除行时,都会调用此插槽。之前的行数由oldCount指定,新的行数由newCount指定。

rowHeight(row)
Parameters:

– 整数

Return type:

整数

返回给定row的高度。

rowMoved(row, oldIndex, newIndex)
Parameters:
  • row – int

  • oldIndex – int

  • newIndex – int

调用此插槽以更改表格视图中给定row的索引。旧索引由oldIndex指定,新索引由newIndex指定。

另请参阅

columnMoved()

rowResized(row, oldHeight, newHeight)
Parameters:
  • row – int

  • oldHeight – int

  • newHeight – int

此插槽被调用以更改给定row的高度。旧高度由oldHeight指定,新高度由newHeight指定。

另请参阅

columnResized()

rowSpan(row, column)
Parameters:
  • row – int

  • column – 整数

Return type:

整数

返回表格元素在(row, column)处的行跨度。默认值为1。

另请参阅

setSpan() columnSpan()

rowViewportPosition(row)
Parameters:

– 整数

Return type:

整数

返回给定row在内容坐标中的y坐标。

selectColumn(column)
Parameters:

– int

如果当前的SelectionMode和SelectionBehavior允许选择列,则在表视图中选择给定的column

另请参阅

selectRow()

selectRow(row)
Parameters:

– 整数

如果当前的SelectionMode和SelectionBehavior允许选择行,则在表视图中选择给定的row

另请参阅

selectColumn()

setColumnHidden(column, hide)
Parameters:
  • column – 整数

  • hide – 布尔值

如果 hide 为真,则给定的 column 将被隐藏;否则它将显示。

setColumnWidth(column, width)
Parameters:
  • column – 整数

  • width – int

将给定的column的宽度设置为width

另请参阅

columnWidth()

setCornerButtonEnabled(enable)
Parameters:

enable – 布尔值

属性 cornerButtonEnabledᅟ 的设置器。

setGridStyle(style)
Parameters:

样式PenStyle

另请参阅

gridStyle()

属性 gridStyleᅟ 的设置器。

setHorizontalHeader(header)
Parameters:

头部QHeaderView

将用于水平标题的小部件设置为header

setRowHeight(row, height)
Parameters:
  • row – int

  • height – int

将给定的row的高度设置为height

另请参阅

rowHeight()

setRowHidden(row, hide)
Parameters:
  • row – int

  • hide – 布尔值

如果 hide 为真,row 将被隐藏,否则它将显示。

setShowGrid(show)
Parameters:

显示 – 布尔值

另请参阅

showGrid()

属性 showGridᅟ 的设置器。

setSortingEnabled(enable)
Parameters:

enable – 布尔值

如果 enable 为 true,则启用表格的排序功能,并立即触发对 sortByColumn() 的调用,使用当前的排序部分和顺序

另请参阅

isSortingEnabled()

属性 sortingEnabledᅟ 的设置器。

setSpan(row, column, rowSpan, columnSpan)
Parameters:
  • row – int

  • column – 整数

  • rowSpan – int

  • columnSpan – int

将表格元素在(row, column)处的跨度设置为由(rowSpanCount, columnSpanCount)指定的行数和列数。

另请参阅

rowSpan() columnSpan()

setVerticalHeader(header)
Parameters:

头部QHeaderView

将用于垂直标题的小部件设置为header

setWordWrap(on)
Parameters:

on – 布尔值

另请参阅

wordWrap()

属性 wordWrapᅟ 的设置器。

showColumn(column)
Parameters:

– int

显示给定的 column

另请参阅

hideColumn() showRow()

showGrid()
Return type:

布尔

另请参阅

setShowGrid()

属性 showGridᅟ 的获取器。

showRow(row)
Parameters:

– 整数

显示给定的 row

另请参阅

hideRow() showColumn()

sortByColumn(column, order)
Parameters:

按给定columnorder中的值对模型进行排序。

column 可能为 -1,在这种情况下不会显示排序指示符,模型将返回其自然的未排序顺序。请注意,并非所有模型都支持此功能,甚至可能在这种情况下崩溃。

另请参阅

sortingEnabled

verticalHeader()
Return type:

QHeaderView

返回表格视图的垂直标题。

wordWrap()
Return type:

布尔

另请参阅

setWordWrap()

属性 wordWrapᅟ 的获取器。