class QTableView#

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

Inheritance diagram of PySide6.QtWidgets.QTableView

继承自: QTableWidget

简介#

属性#

方法#

槽(Slots)#

注意

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

详细描述#

../../_images/windows-tableview.png

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

QTableView 类是 模型/视图类 之一,是 Qt 的 模型/视图框架 的一部分。

QTableView 实现了由 QAbstractItemView 类定义的接口,允许它显示由 QAbstractItemModel 类的派生模型提供的数据。

视觉外观#

表格具有一个垂直标题,可以通过调用 verticalHeader() 函数来获取,并且有一个水平标题,可以通过 horizontalHeader() 函数来访问。表格中每一行的长度可以通过使用 rowHeight() 来查找;同样,通过 columnWidth() 可以查找列的宽度。由于这两个都是普通的小部件,您可以通过它们的 hide() 函数之一来隐藏任何一个。每个标题都配置了其 highlightSectionssectionsClickable 属性设置为 true

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

表格视图中显示的项,如其他项视图中的项,使用标准的 代理 进行渲染和编辑。然而,对于某些任务,在表格中插入小部件有时可能很有用。使用 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

访问函数
属性 gridStyle: Qt.PenStyle#

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

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

访问函数
属性 showGrid: bool#

此属性存储是否显示网格。

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

访问函数
属性 sortingEnabled: bool#

此属性存储是否启用排序。

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

注意

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

访问函数
属性 wordWrap: bool#

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

如果此属性为 true,则项目文本将在必要时在单词断开处自动换行;否则不会自动换行。默认值是true。

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

访问函数
__init__([parent=None])#
参数:

parentQWidget

构建一个带有 parent 的表视图,以表示数据。

clearSpans()#

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

参见

setSpan()

columnAt(x)#
参数:

x – int

返回类型:

int

返回给定坐标 x 所在的列,该坐标基于内容坐标。

注意

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

参见

rowAt()

columnCountChanged(oldCount, newCount)#
参数:
  • oldCount – int

  • newCount – int

每当有列被添加或删除时,都会调用此槽。前一个列数由 oldCount 指定,新列数由 newCount 指定。

columnMoved(column, oldIndex, newIndex)#
参数:
  • column – int

  • oldIndex – int

  • newIndex – int

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

参见

rowMoved()

columnResized(column, oldWidth, newWidth)#
参数:
  • column – int

  • oldWidth – int

  • newWidth – int

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

参见

rowResized()

columnSpan(row, column)#
参数:
  • row – int

  • column – int

返回类型:

int

返回位于 (row, column) 的表格元素的列跨。默认为 1。

columnViewportPosition(column)#
参数:

column – int

返回类型:

int

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

columnWidth(column)#
参数:

column – int

返回类型:

int

返回给定 column 的宽度。

gridStyle()#
返回类型:

笔风

属性 gridStyle 的获取器。

hideColumn(column)#
参数:

column – int

隐藏给定的 column

hideRow(row)#
参数:

row – int

隐藏给定的 row

horizontalHeader()#
返回类型:

QHeaderView

返回表格视图的水平表头。

isColumnHidden(column)#
参数:

column – int

返回类型:

bool

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

参见

isRowHidden()

isCornerButtonEnabled()#
返回类型:

bool

属性 cornerButtonEnabled 的获取器。

isRowHidden(row)#
参数:

row – int

返回类型:

bool

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

isSortingEnabled()#
返回类型:

bool

属性 sortingEnabled 的获取器。

resizeColumnToContents(column)#
参数:

column – int

根据用于渲染列中每个项的代理的大小提示调整给定 column 的大小。

注意

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

参见

resizeColumnsToContents() sizeHintForColumn() resizeContentsPrecision()

resizeColumnsToContents()#

根据用于渲染列中每个项的代理的大小提示调整所有列的大小。

参见

resizeColumnToContents() sizeHintForColumn() resizeContentsPrecision()

resizeRowToContents(row)#
参数:

row – int

根据用于渲染行中每个项的代理的大小提示调整给定 row 的大小。

参见

resizeRowsToContents() sizeHintForRow() resizeContentsPrecision()

resizeRowsToContents()#

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

rowAt(y)#
参数:

y – int

返回类型:

int

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

注意

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

参见

columnAt()

rowCountChanged(oldCount, newCount)#
参数:
  • oldCount – int

  • newCount – int

每当添加或删除行时调用此槽。旧的行数由oldCount指定,新的行数由newCount指定。

rowHeight(row)#
参数:

row – int

返回类型:

int

返回给定row的高度。

rowMoved(row, oldIndex, newIndex)#
参数:
  • row – int

  • oldIndex – int

  • newIndex – int

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

参见

columnMoved()

rowResized(row, oldHeight, newHeight)#
参数:
  • row – int

  • oldHeight – int

  • newHeight – int

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

rowSpan(row, column)#
参数:
  • row – int

  • column – int

返回类型:

int

返回指定(rowcolumn)表格元素的行跨。默认为1。

rowViewportPosition(row)#
参数:

row – int

返回类型:

int

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

selectColumn(column)#
参数:

column – int

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

参见

selectRow()

selectRow(row)#
参数:

row – int

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

setColumnHidden(column, hide)#
参数:
  • column – int

  • **hide** – bool

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

setColumnWidth(column, width)#
参数:
  • column – int

  • **width** – int

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

参见

columnWidth()

setCornerButtonEnabled(enable)#
参数:

**enable** – bool

设置属性 cornerButtonEnabled 的值。

setGridStyle(style)#
参数:

样式PenStyle

参见

gridStyle()

属性 gridStyle 的设置器。

setHorizontalHeader(header)#
参数:

headerQHeaderView

将用于水平表头的控件设置为 header

setRowHeight(row, height)#
参数:
  • row – int

  • height – int

将指定 row 的高度设置为 height

参见

rowHeight()

setRowHidden(row, hide)#
参数:
  • row – int

  • **hide** – bool

如果 hide 为 true,则 row 会被隐藏,否则会被显示。

setShowGrid(show)#
参数:

show – bool

参见

showGrid()

属性 showGrid 的设置器。

setSortingEnabled(enable)#
参数:

**enable** – bool

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

属性 sortingEnabled 的设置器。

setSpan(row, column, rowSpan, columnSpan)#
参数:
  • row – int

  • column – int

  • rowSpan – int

  • columnSpan – int

将位于(rowcolumn)的表格元素的跨距设置为(rowSpanCountcolumnSpanCount)指定的行数和列数。

setVerticalHeader(header)#
参数:

headerQHeaderView

将垂直头部的使用小部件设置为header

setWordWrap(on)#
参数:

on – bool

参见

wordWrap()

属性wordWrap的设置器。

showColumn(column)#
参数:

column – int

显示指定的column

showGrid()#
返回类型:

bool

参见

setShowGrid()

属性showGrid的获取器。

showRow(row)#
参数:

row – int

显示指定的row

sortByColumn(column, order)#
参数:

根据指定列的值和排序顺序进行模型的排序。

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

参见

sortingEnabled

verticalHeader()#
返回类型:

QHeaderView

返回表格的垂直标题。

wordWrap()#
返回类型:

bool

参见

setWordWrap()

属性 wordWrap 的获取器。