class QItemSelectionModel#

QItemSelectionModel 类跟踪视图中的选中项。更多

Inheritance diagram of PySide6.QtCore.QItemSelectionModel

概述#

属性#

方法#

虚方法#

插槽#

信号#

注意

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

详细描述#

QItemSelectionModel 用于跟踪视图中的选中项,或者在同一模型上的多个视图中的选中项。它还跟踪视图中的当前选中项。

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

选中的项使用范围进行存储。当您想修改选中项时,请使用 select() 并提供 QItemSelectionQModelIndex 以及 SelectionFlag

QItemSelectionModel 在选择管理方面采用了两层方法,处理已提交的选中项以及当前选择中的项。当前选中的项是当前交互式选择的一部分(例如,使用橡皮筋选择或键盘 Shift 选择)。

要更新当前选中的项,请使用 Current 和任何其他 SelectionFlags 的按位或。如果您省略了 Current 命令,则将创建一个新的当前选择,并将上一个选择添加到整个选择中。所有功能都操作在这两层上;例如,selecteditems() 将返回这两层上的项。

注意

自 5.5 版本起,modelhasSelectioncurrentIndex 都是元对象属性。

请参阅

QAbstractItemModel

class SelectionFlag#

(继承 enum.Flag) 这个枚举描述了选择模型将如何更新。

常量

描述

QItemSelectionModel.NoUpdate

不会进行选择。

QItemSelectionModel.Clear

将清除完整的选择。

QItemSelectionModel.Select

将选择所有指定索引。

QItemSelectionModel.Deselect

将取消选择所有指定索引。

QItemSelectionModel.Toggle

将根据其当前状态选择或取消选择所有指定索引。

QItemSelectionModel.Current

将更新当前选择。

QItemSelectionModel.Rows

将展开所有索引以跨越行。

QItemSelectionModel.Columns

将展开所有索引以跨越列。

QItemSelectionModel.SelectCurrent

为方便起见,提供了 Select 和 Current 的组合。

QItemSelectionModel.ToggleCurrent

为便利提供 Toggle 和 Current 的组合。

QItemSelectionModel.ClearAndSelect

为便利提供 Clear 和 Select 的组合。

注意

使用 from __feature__ import true_property 或其他访问器函数直接使用属性时可以。

property currentIndexᅟ: QModelIndex#
访问函数
property hasSelectionᅟ: bool#
访问函数
property modelᅟ: QAbstractItemModel#
访问函数
property selectedIndexesᅟ: list of QModelIndex#
访问函数
property selectionᅟ: QItemSelection#
访问函数
__init__(model, parent)#
参数:

根据指定的项 modelparent 创建一个选择模型。

__init__([model=None])
参数:

modelQAbstractItemModel

根据指定的项 model 创建一个选择模型。

clear()#

清除选择模型。触发 selectionChanged()currentChanged()

clearCurrentIndex()#

清除当前位置。触发 currentChanged()

clearSelection()#

清除选择模型中的选择。触发 selectionChanged()

columnIntersectsSelection(column[, parent=QModelIndex()])#
参数:
返回类型::

bool

如果给定 parentcolumn 中有已选项目,返回 true

注意

从 Qt 5.15 开始,parent 的默认参数为空模型索引。

currentChanged(current, previous)#
参数:

每次当前项目更改时,都会发出该信号。作为选择当前项目,使用 current 模型索引项替换 previous 模型项索引。

请注意,当项目模型重置时,该信号不会发出。

属性 currentIndex 的通知信号。

currentColumnChanged(current, previous)#
参数:

当当前项目发生变化且其列与上一个当前项目的列不同时,会发出此信号。

请注意,当项目模型重置时,该信号不会发出。

请参阅

currentChanged()

currentIndex()#
返回类型::

QModelIndex

返回当前项目的模型项索引,如果没有当前项目则返回一个无效索引。

请参阅

setCurrentIndex()

currentIndex属性获取器。

currentRowChanged(current, previous)#
参数:

当前项目发生变化且其行与上一个当前项目的行不同时,会发出此信号。

请注意,当项目模型重置时,该信号不会发出。

请参阅

currentChanged()

emitSelectionChanged(newSelection, oldSelection)#
参数:

比较两个选择 newSelectionoldSelection 并使用取消选中项和选中项发出 selectionChanged()

hasSelection()#
返回类型::

bool

如果选择模型包含任何已选项目,则返回 true,否则返回 false

属性 hasSelectionᅟ 的获取器。

isColumnSelected(column[, parent=QModelIndex()])#
参数:
返回类型::

bool

如果给定 parentcolumn 中的所有项都已被选中,则返回 true

请注意,此函数通常比在相同列中的所有项目中调用 isSelected() 更快,且不可选项目将被忽略。

注意

从 Qt 5.15 开始,parent 的默认参数为空模型索引。

isRowSelected(row[, parent=QModelIndex()])#
参数:
返回类型::

bool

如果给定 parentrow 中的所有项都被选中,则返回 true

请注意,此函数通常比在相同行中的所有项目中调用 isSelected() 更快,且不可选项目将被忽略。

注意

从 Qt 5.15 开始,parent 的默认参数为空模型索引。

isSelected(index)#
参数:

indexQModelIndex

返回类型::

bool

如果给定的模型项 index 被选中,则返回 true

model()#
返回类型::

QAbstractItemModel

返回选择模型操作的对象模型。

请参阅

setModel()

属性 modelᅟ 的获取器。

modelChanged(model)#
参数:

modelQAbstractItemModel

当使用 setModel() 成功设置 model 时,会发出此信号。

请参阅

model() setModel()

属性model的通知信号。

reset()#

清除选择模型。不发出任何信号。

rowIntersectsSelection(row[, parent=QModelIndex()])#
参数:
返回类型::

bool

如果给定的父项中行row有任何选中的项,则返回true

注意

从 Qt 5.15 开始,parent 的默认参数为空模型索引。

select(selection, command)#
参数:

使用指定的命令选择项selection,并发出selectionChanged

请参阅

SelectionFlag

select(index, command)
参数:

使用指定的命令选择模型项index,并发出selectionChanged

请参阅

SelectionFlags

selectedColumns([row=0])#
参数:

row – int

返回类型::

QModelIndexのリスト

返回在给定row中对于所有行都选中的列的索引。

selectedIndexes()#
返回类型::

QModelIndexのリスト

返回所有选定的模型项索引的列表。列表中无重复项且未排序。

属性selectedIndexes的获取器。

selectedRows([column=0])#
参数:

column – int

返回类型::

QModelIndexのリスト

返回给定 column 中所有列均被选中的行的索引。

selection()#
返回类型::

QItemSelection

返回存储在选择模型中的选择范围。

属性 selectionᅟ 的获取器。

selectionChanged(selected, deselected)#
参数:

每当选择发生变化时,都会发出此信号。选择变化表示为 deselected 项目的项目选择和 selected 项目的项目选择。

请注意,当前索引是独立于选择变化的。此外,当项目模型重置时,此信号不会发出。

保持在选中状态但更改其索引的项目不包括在 selecteddeselected 中。因此,如果只有选项目的索引更改,则可能会带有空 selecteddeselected 的信号发出。

属性 hasSelectionᅟ 的通知信号。

setCurrentIndex(index, command)#
参数:

将模型项目 index 设置为当前项目,并发出 currentChanged() 。当前项目用于键盘导航和焦点指示;它不依赖于任何选中项目,尽管选中项目也可以是当前项目。

根据指定的 命令索引 也可以成为当前选择的一部分。

setModel(model)#
参数:

modelQAbstractItemModel

设置模型为 model。将发出 modelChanged() 信号。

属性 model 的设置器。