class QTableWidget#

QTableWidget 类提供一个具有默认模型的基于元素表格视图。 更多信息...

Inheritance diagram of PySide6.QtWidgets.QTableWidget

摘要#

属性#

方法#

虚方法#

槽(Slots)#

信号#

注意

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

详细描述#

警告

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

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

表格小部件为应用程序提供标准表格显示功能。一个QTableWidget中的项由QTableWidgetItem提供。

如果您想使用自己的数据模型的表格,应使用QTableView而不是这个类。

可以按所需的行数和列数构造表格小部件

tableWidget = QTableWidget(12, 3, self)

或者,可以构造一个没有指定大小的表格,并在之后调整大小

tableWidget = QTableWidget(self)
tableWidget.setRowCount(10)
tableWidget.setColumnCount(5)

项目是在表格外创建的(没有父小部件),并通过setItem() 方法将其插入表格

newItem = QTableWidgetItem(tr("%1").arg(()
    (row+1)*(column+1)))
tableWidget.setItem(row, column, newItem)

如果您想在表格小部件中启用排序,请在填充了项之后进行,否则排序可能会干扰插入顺序(有关详细信息,请参阅setItem())。

表格可以同时设置为水平和垂直标题。创建标题的最简单方法是向setHorizontalHeaderLabels()setVerticalHeaderLabels() 函数提供字符串列表。这将提供简单的文本标题作为表列和行的标题。可以从通常在表格外构建的现有表项创建更复杂的首部。例如,我们可以使用图标和对齐文本构建一个表项,并将其用作特定列的标题

cubesHeaderItem = QTableWidgetItem(tr("Cubes"))
cubesHeaderItem.setIcon(QIcon(QPixmap(":/Images/cubed.png")))
cubesHeaderItem.setTextAlignment(Qt.AlignVCenter)

可以使用rowCount()找到表格的行数,使用columnCount()找到列数。可以使用clear()函数清空表格。

注意

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

属性columnCount: int#

此属性包含的值是表格中的列数。

默认情况下,对于没有行数和列数构造的表格,此属性包含0值。

访问函数
属性rowCount: int#

此属性包含表格中的行数。

默认情况下,对于没有行数和列数构造的表格,此属性包含0值。

访问函数
__init__(rows, columns[, parent=None])#
参数(Parameters):
  • rows – int

  • columns – int

  • parentQWidget

使用指定的 rowscolumns 创建一个新的表格视图,并设置给定的 parent

__init__([parent=None])
参数(Parameters):

parentQWidget

使用指定的 parent 创建一个新的表格视图。

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

  • column – int

当指定的行列的单元格被激活时,发出此信号 rowcolumn

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

  • column – int

当指定行列的单元格中的数据更改时,发出此信号。

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

  • column – int

当表格中的单元格被点击时,发出此信号。指定的 rowcolumn 是被点击的单元格。

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

  • column – int

当表格中的单元格被双击时,发出此信号。指定的 rowcolumn 是被双击的单元格。

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

  • column – int

当鼠标光标进入单元格时,发出此信号。单元格由 rowcolumn 确定。

该信号仅在鼠标跟踪开启时发出,或者在鼠标移动到项目时按下鼠标按钮的情况下发出。

cellPressed(, )#
参数(Parameters):
  • row – int

  • column – int

每当在表格中按下单元格时,都会发出此信号。指定的 是被按下的单元格。

cellWidget(, )#
参数(Parameters):
  • row – int

  • column – int

返回类型:

QWidget

返回给定 的单元格中显示的部件。

注意

表格将拥有该部件的所有权。

另请参阅

setCellWidget()

clear()#

从视图中移除所有条目。这也会移除所有选择和标题。如果您不想移除标题,请使用 clearContents() 。表格维数保持不变。

clearContents()#

从视图中移除所有不在标题中的条目。这也会移除所有选择。表格维数保持不变。

closePersistentEditor(item)#
参数(Parameters):

itemQTableWidgetItem

关闭 item 的持久编辑器。

column(item)#
参数(Parameters):

itemQTableWidgetItem

返回类型:

int

返回 item 所属的列。

columnCount()#
返回类型:

int

返回列数。

另请参阅

setColumnCount()

属性 columnCountᅟ 的获取器。

currentCellChanged(当前行, 当前列, 前一行, 前一列)#
参数(Parameters):
  • 当前行 – int

  • 当前列 – int

  • 前一行 – int

  • 前一列 – int

每当当前单元格变化时,都会发出此信号。由 前一行前一列 指定的单元格是之前具有焦点的单元格,由 当前行当前列 指定的单元格是新的当前单元格。

currentColumn()#
返回类型:

int

返回当前项目的列。

currentItem()#
返回类型:

QTableWidgetItem

返回当前项。

另请参阅

setCurrentItem()

currentItemChanged(当前, 前一)#
参数(Parameters):

每当当前项变化时,都会发出此信号。 前一 项是之前具有焦点的项, 当前 是新的当前项。

currentRow()#
返回类型:

int

返回当前项的行。

dropMimeData(, , 数据, 操作)#
参数(Parameters):
返回类型:

bool

处理由拖放操作提供的data,该操作在第row和第column上结束,并具有指定的action。如果数据和操作可以被模型处理,则返回true;否则返回false

另请参阅

supportedDropActions()

editItem(item)#
参数(Parameters):

itemQTableWidgetItem

如果项目可编辑,开始编辑item

findItems(text)#
参数(Parameters):
返回类型:

. list of QTableWidgetItem

使用指定的flags查找与text匹配的项目。

horizontalHeaderItem(column)#
参数(Parameters):

column – int

返回类型:

QTableWidgetItem

如果已设置列标题,则返回列column的水平标题项;否则返回None

indexFromItem(item)#
参数(Parameters):

itemQTableWidgetItem

返回类型:

QModelIndex

返回与给定item关联的QModelIndex。

注意

在Qt 5.10之前的版本中,此函数需要一个非constitem

insertColumn(column)#
参数(Parameters):

column – int

在表中的column位置插入一个空列。

insertRow(row)#
参数(Parameters):

row – int

在表中的row位置插入一个空行。

isPersistentEditorOpen(item)#
参数(Parameters):

itemQTableWidgetItem

返回类型:

bool

返回是否为项item打开了一个持久编辑器。

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

  • column – int

返回类型:

QTableWidgetItem

返回给定 rowcolumn 的项,如果有设置;否则返回 None

另请参阅

setItem()

itemActivated(item)#
参数(Parameters):

itemQTableWidgetItem

当指定的 item 被激活时,会发出此信号

itemAt(p)#
参数(Parameters):

pQPoint

返回类型:

QTableWidgetItem

返回给定 point 位置的项的指针,或者在表小部件中的项无法覆盖 point 时返回 None

另请参阅

item()

itemAt(x, y)
参数(Parameters):
  • x – int

  • y – int

返回类型:

QTableWidgetItem

返回表小部件坐标系中与 QPoint(ax, ay) 相等位置处的项,或在指定的点不由表小部件中的项覆盖时返回 None

另请参阅

item()

itemChanged(item)#
参数(Parameters):

itemQTableWidgetItem

item 的数据更改时,会发出此信号

itemClicked(item)#
参数(Parameters):

itemQTableWidgetItem

当在表中单击项时,会发出此信号。指定的 item 是被单击的项。

itemDoubleClicked(item)#
参数(Parameters):

itemQTableWidgetItem

当在表中双击项时,会发出此信号。指定的 item 是被双击的项。

itemEntered(item)#
参数(Parameters):

itemQTableWidgetItem

当鼠标光标进入项时,会发出此信号。该项是进入的项。

该信号仅在鼠标跟踪开启时发出,或者在鼠标移动到项目时按下鼠标按钮的情况下发出。

itemFromIndex(index)#
参数(Parameters):

indexQModelIndex

返回类型:

QTableWidgetItem

返回与给定index相关联的QTableWidgetItem的指针。

itemPressed(item)#
参数(Parameters):

itemQTableWidgetItem

每当在表中按下一个项时,都会发出此信号。指定的item是按下的项。

itemPrototype()#
返回类型:

QTableWidgetItem

返回表使用的项原型。

另请参阅

setItemPrototype()

itemSelectionChanged()#

每当选择更改时,都会发出此信号。

items(data)#
参数(Parameters):

数据QMimeData

返回类型:

. list of QTableWidgetItem

返回包含在data对象中的项的指针列表。如果该对象不是由同一进程中创建的QTreeWidget创建的,则列表为空。

mimeData(items)#
参数(Parameters):

items – .声明为QTableWidgetItem的列表

返回类型:

QMimeData

返回一个包含指定items序列化的描述的对象。用于描述项的格式从mimeTypes()函数中获取。

如果项列表为空,则返回None,而不是序列化的空列表。

mimeTypes()#
返回类型:

字符串列表

返回可以用于描述一系列表控件项的MIME类型列表。

另请参阅

mimeData()

openPersistentEditor(item)#
参数(Parameters):

itemQTableWidgetItem

为给定的item打开一个编辑器。编辑后编辑器保持打开状态。

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

  • column – int

删除由 rowcolumn 指定的单元格上设置的部件。

removeColumn(column)#
参数(Parameters):

column – int

删除列 column 以及其所有条目。

removeRow(row)#
参数(Parameters):

row – int

删除行 row 以及其所有条目。

row(item)#
参数(Parameters):

itemQTableWidgetItem

返回类型:

int

返回 item 所在的行。

rowCount()#
返回类型:

int

返回行数。

另请参阅

setRowCount()

属性 rowCountᅟ 的获取器。

scrollToItem(item[, hint=QAbstractItemView.ScrollHint.EnsureVisible])#
参数(Parameters):

根据需要滚动视图,以确保 item 可见。 hint 参数更精确地指定操作后 item 应该位于的位置。

selectedItems()#
返回类型:

. list of QTableWidgetItem

返回所有选中项的列表。

此函数返回指向选中单元格的内容的指针列表。使用 selectedIndexes() 函数检索包含空单元格的完整选择。

另请参阅

selectedIndexes()

selectedRanges()#
返回类型:

类别列表 QTableWidgetSelectionRange

返回所有选中范围的列表。

setCellWidget(row, column, widget)#
参数(Parameters):
  • row – int

  • column – int

  • 小部件QWidget

警告

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

将指定的 widget 显示在指定 rowcolumn 的单元格中,并将小部件的所有权传递给表格。

如果将单元格小部件 A 替换为单元格小部件 B,则小部件 A 将被删除。例如,在下述代码片段中,QLineEdit 对象将被删除。

setCellWidget(row, column, QLineEdit())
...
setCellWidget(row, column, QTextEdit())

另请参阅

cellWidget()

setColumnCount(columns)#
参数(Parameters):

columns – int

将此表格模型的列数设置为 columns。如果这个值小于 columnCount(),则不想要的列中的数据将被丢弃。

属性 columnCount的设置器。

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

  • column – int

将当前单元格设置为位置 (row, column) 的单元格。

根据当前的 selection mode,单元格也可能被选中。

setCurrentCell(row, column, command)
参数(Parameters):

使用给定的 command 将当前单元格设置为位置 (row, column) 的单元格。

setCurrentItem(item, command)#
参数(Parameters):

使用给定的 command 设置当前项为 item

setCurrentItem(item)
参数(Parameters):

itemQTableWidgetItem

将当前项设置为 item

除非选择模式为 NoSelection ,否则项也会被选中。

setHorizontalHeaderItem(column, item)#
参数(Parameters):

设置水平表头项,将列 column 的水平表头项设置为 item。如果需要,列数会增加以容纳项。之前的表头项(如果有的话)将被删除。

另请参阅

horizontalHeaderItem()

setHorizontalHeaderLabels(labels)#
参数(Parameters):

labels – 字符串列表

使用 labels 设置水平表头标签。

setItem(row, column, item)#
参数(Parameters):

将指定行 row 和列 column 的项设置为 item

表将拥有该项。

注意,如果启用了排序(请参阅 sortingEnabled )并且 column 是当前排序列,则行将移动到由 item 确定的排序位置。

如果您想设置特定行的多个项(例如,通过在循环中调用 setItem()),您可能希望在这样做之前关闭排序,并在之后重新打开它;这将允许您为同一行中的所有项使用相同的 row 参数(即 setItem() 将不会移动行)。

另请参阅

item() takeItem()

setItemPrototype(item)#
参数(Parameters):

itemQTableWidgetItem

为表格设置指定的 item 作为项目原型。

当表格小部件需要创建新的表格项目时将使用项目原型的克隆函数。例如,当用户在空单元格中编辑时。如果您有一个 QTableWidgetItem 子类,并想确保 QTableWidget 创建您的子类实例,这非常有用。

表格将拥有原型。

另请参阅

itemPrototype()

setRangeSelected(range, select)#
参数(Parameters):

根据 select 选择或取消选择 range

setRowCount(rows)#
参数(Parameters):

rows – int

将此表模型的行数设置为 rows。如果此值小于 rowCount() ,则丢弃不需要的行中的数据。

属性 rowCount 的设置器。

setVerticalHeaderItem(row, item)#
参数(Parameters):

将行 row 的垂直标题项设置为 item

另请参阅

verticalHeaderItem()

setVertical_headerLabels(labels)#
参数(Parameters):

labels – 字符串列表

使用 labels 设置垂直标题标签。

sortItems(column[, order=Qt.AscendingOrder])#
参数(Parameters):

根据 columnorder 对表小部件中的所有行进行排序。

supportedDropActions()#
返回类型:

DropAction 的组合

返回此视图支持的拖动操作。

另请参阅

拖动操作

takeHorizontalHeaderItem(column)#
参数(Parameters):

column – int

返回类型:

QTableWidgetItem

从标题中移除位于 column 的水平标题项,而不删除它。

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

  • column – int

返回类型:

QTableWidgetItem

从表中移除位于 rowcolumn 的项,而不删除它。

takeVerticalHeaderItem(row)#
参数(Parameters):

row – int

返回类型:

QTableWidgetItem

从标题中移除位于 row 的垂直标题项,而不删除它。

verticalHeaderItem(row)#
参数(Parameters):

row – int

返回类型:

QTableWidgetItem

返回行 row 的垂直标题项。

visualColumn(logicalColumn)#
参数(Parameters):

logicalColumn – int

返回类型:

int

返回指定 logicalColumn 的可视列。

visualItemRect(item)#
参数(Parameters):

itemQTableWidgetItem

返回类型:

QRect

返回由 item 占据的视口上的矩形。

visualRow(logicalRow)#
参数(Parameters):

logicalRow – int

返回类型:

int

返回指定 logicalRow 的可视行。