PySide6.QtWidgets.QTableWidget

class QTableWidget

QTableWidget 类提供了一个基于项目的表格视图,带有默认模型。更多

PySide6.QtWidgets.QTableWidget 的继承图

概要

属性

方法

虚拟方法

插槽

信号

注意

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

详细描述

警告

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

../../_images/fusion-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时,属性可以直接使用,否则通过访问器函数使用。

property columnCountᅟ: int

此属性表示表格中的列数。

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

Access functions:
property rowCountᅟ: int

此属性保存表中的行数。

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

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

父级QWidget

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

__init__(rows, columns[, parent=None])
Parameters:
  • rows – int

  • columns – 整数

  • parentQWidget

使用给定的rowscolumns以及给定的parent创建一个新的表格视图。

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

  • column – 整数

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

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

  • column – 整数

每当由rowcolumn指定的单元格中的数据发生变化时,就会发出此信号。

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

  • column – 整数

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

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

  • column – 整数

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

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

  • column – 整数

当鼠标光标进入一个单元格时,会发出此信号。该单元格由rowcolumn指定。

此信号仅在启用鼠标跟踪时发出,或在移动进入项目时按下鼠标按钮时发出。

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

  • column – 整数

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

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

  • column – 整数

Return type:

QWidget

返回在给定的中显示的部件。

注意

该表接管了小部件的所有权。

另请参阅

setCellWidget()

clear()

移除视图中的所有项目。这也会移除所有选择和标题。如果你不想移除标题,请使用clearContents()。表格的尺寸保持不变。

clearContents()

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

closePersistentEditor(item)
Parameters:

项目QTableWidgetItem

关闭item的持久编辑器。

column(item)
Parameters:

项目QTableWidgetItem

Return type:

整数

返回item的列。

columnCount()
Return type:

整数

返回列的数量。

另请参阅

setColumnCount()

属性 columnCountᅟ 的获取器。

currentCellChanged(currentRow, currentColumn, previousRow, previousColumn)
Parameters:
  • currentRow – int

  • currentColumn – int

  • previousRow – int

  • previousColumn – int

每当当前单元格发生变化时,就会发出此信号。由previousRowpreviousColumn指定的单元格是之前具有焦点的单元格,由currentRowcurrentColumn指定的单元格是新的当前单元格。

currentColumn()
Return type:

整数

返回当前项目的列。

currentItem()
Return type:

QTableWidgetItem

返回当前项目。

另请参阅

setCurrentItem()

currentItemChanged(current, previous)
Parameters:

每当当前项目发生变化时,就会发出此信号。previous 项目是之前具有焦点的项目,current 是新的当前项目。

currentRow()
Return type:

整数

返回当前项目的行。

dropMimeData(row, column, data, action)
Parameters:
Return type:

布尔

处理由拖放操作提供的data,该操作在给定的rowcolumn中以给定的action结束。如果模型可以处理数据和操作,则返回true;否则返回false

另请参阅

supportedDropActions()

editItem(item)
Parameters:

项目QTableWidgetItem

如果item是可编辑的,则开始编辑。

findItems(text, flags)
Parameters:
  • 文本 – str

  • flagsMatchFlag 的组合

Return type:

QTableWidgetItem的列表

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

horizontalHeaderItem(column)
Parameters:

– int

Return type:

QTableWidgetItem

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

indexFromItem(item)
Parameters:

项目QTableWidgetItem

Return type:

QModelIndex

返回与给定item关联的QModelIndex。

注意

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

insertColumn(column)
Parameters:

– int

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

insertRow(row)
Parameters:

– 整数

在表格的row处插入一个空行。

isPersistentEditorOpen(item)
Parameters:

项目QTableWidgetItem

Return type:

布尔

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

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

  • column – 整数

Return type:

QTableWidgetItem

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

另请参阅

setItem()

itemActivated(item)
Parameters:

项目QTableWidgetItem

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

itemAt(p)
Parameters:

pQPoint

Return type:

QTableWidgetItem

返回指向给定point处的项目的指针,如果表格小部件中没有项目覆盖point,则返回None

另请参阅

item()

itemAt(x, y)
Parameters:
  • x – 整数

  • y – 整数

Return type:

QTableWidgetItem

返回在表格小部件的坐标系中与QPoint(ax, ay)位置相对应的项,如果指定点未被表格小部件中的项覆盖,则返回None

另请参阅

item()

itemChanged(item)
Parameters:

项目QTableWidgetItem

每当item的数据发生变化时,都会发出此信号。

itemClicked(item)
Parameters:

项目QTableWidgetItem

每当点击表格中的项目时,都会发出此信号。item 指定的是被点击的项目。

itemDoubleClicked(item)
Parameters:

项目QTableWidgetItem

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

itemEntered(item)
Parameters:

项目QTableWidgetItem

当鼠标光标进入一个项目时,会发出此信号。item 是进入的项目。

此信号仅在启用鼠标跟踪时发出,或在移动进入项目时按下鼠标按钮时发出。

itemFromIndex(index)
Parameters:

索引QModelIndex

Return type:

QTableWidgetItem

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

itemPressed(item)
Parameters:

项目QTableWidgetItem

每当按下表格中的项目时,都会发出此信号。指定的item是被按下的项目。

itemPrototype()
Return type:

QTableWidgetItem

返回表格使用的项目原型。

另请参阅

setItemPrototype()

itemSelectionChanged()

每当选择发生变化时,都会发出此信号。

items(data)
Parameters:

数据QMimeData

Return type:

QTableWidgetItem的列表

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

mimeData(items)
Parameters:

items – QTableWidgetItem 的列表

Return type:

QMimeData

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

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

mimeTypes()
Return type:

字符串列表

返回可用于描述表格小部件项目列表的MIME类型列表。

另请参阅

mimeData()

openPersistentEditor(item)
Parameters:

项目QTableWidgetItem

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

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

  • column – 整数

移除由rowcolumn指示的单元格上设置的小部件。

removeColumn(column)
Parameters:

– int

从表中移除列 column 及其所有项。

removeRow(row)
Parameters:

– 整数

从表中移除行 row 及其所有项目。

row(item)
Parameters:

项目QTableWidgetItem

Return type:

整数

返回item的行。

rowCount()
Return type:

整数

返回行数。

另请参阅

setRowCount()

属性 rowCountᅟ 的获取器。

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

如有必要,滚动视图以确保item可见。hint参数更精确地指定了操作后item应位于的位置。

selectedItems()
Return type:

QTableWidgetItem的列表

返回所有选定项目的列表。

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

另请参阅

selectedIndexes()

selectedRanges()
Return type:

QTableWidgetSelectionRange的列表

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

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

  • column – 整数

  • widgetQWidget

警告

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

将给定的widget设置为在给定的rowcolumn中显示,并将该widget的所有权传递给表格。

如果单元格小部件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 – 整数

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

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

setCurrentCell(row, column, command)
Parameters:
  • row – int

  • column – 整数

  • commandSelectionFlag 的组合

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

setCurrentItem(item)
Parameters:

项目QTableWidgetItem

将当前项目设置为 item

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

setCurrentItem(item, command)
Parameters:

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

setHorizontalHeaderItem(column, item)
Parameters:

将列 column 的水平标题项设置为 item。如有必要,列数会增加以适应该项。先前的标题项(如果有的话)将被删除。

另请参阅

horizontalHeaderItem()

setHorizontalHeaderLabels(labels)
Parameters:

labels – 字符串列表

使用 labels 设置水平标题标签。

setItem(row, column, item)
Parameters:

将给定的rowcolumn的项目设置为item

该表拥有该项目的所有权。

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

如果你想设置某一行的多个项目(例如,在循环中调用setItem()),你可能希望在操作之前关闭排序,并在操作完成后重新开启;这将允许你对同一行中的所有项目使用相同的row参数(即setItem()不会移动该行)。

另请参阅

item() takeItem()

setItemPrototype(item)
Parameters:

项目QTableWidgetItem

将表的项目原型设置为指定的 item

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

该表接管了原型的所有权。

另请参阅

itemPrototype()

setRangeSelected(range, select)
Parameters:

根据 select 选择或取消选择 range

setRowCount(rows)
Parameters:

行数 – int

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

属性 rowCountᅟ 的设置器。

setVerticalHeaderItem(row, item)
Parameters:

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

另请参阅

verticalHeaderItem()

setVerticalHeaderLabels(labels)
Parameters:

labels – 字符串列表

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

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

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

supportedDropActions()
Return type:

DropAction的组合

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

另请参阅

DropActions

takeHorizontalHeaderItem(column)
Parameters:

– int

Return type:

QTableWidgetItem

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

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

  • column – 整数

Return type:

QTableWidgetItem

从表中移除位于rowcolumn处的项目,但不删除它。

takeVerticalHeaderItem(row)
Parameters:

– 整数

Return type:

QTableWidgetItem

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

verticalHeaderItem(row)
Parameters:

– 整数

Return type:

QTableWidgetItem

返回行row的垂直标题项。

visualColumn(logicalColumn)
Parameters:

logicalColumn – int

Return type:

整数

返回给定logicalColumn的视觉列。

visualItemRect(item)
Parameters:

项目QTableWidgetItem

Return type:

QRect

返回视口中由item处的项目占据的矩形。

visualRow(logicalRow)
Parameters:

logicalRow – int

Return type:

整数

返回给定logicalRow的视觉行。