class QAbstractItemView#

提供基本功能项视图类的 QAbstractItemView 类。

Inheritance diagram of PySide6.QtWidgets.QAbstractItemView

继承自: QTreeViewQTreeWidgetQHelpContentWidgetQTableViewQTableWidgetQListViewQUndoViewQListWidgetQHelpIndexWidgetQHeaderViewQColumnView

概述#

属性#

方法#

虚函数#

槽函数#

信号#

注意

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

详细说明#

警告

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

QAbstractItemView类是每个使用QAbstractItemModel的标准视图的基类。QAbstractItemView是一个抽象类,不能自己实例化。它通过信号和槽机制提供标准接口,以便与模型交互,使子类能够随时了解模型的变化。此类提供标准支持,包括键盘和鼠标导航、视口滚动、项目编辑和选择。键盘导航实现了以下功能

键位

功能

箭头键

更改当前项并选择它。

Ctrl+箭头键

只更改当前项但不选择该项。

Shift+箭头键

更改当前项并选择它。之前选择的项目不会被取消选择。

Ctrl+空格

切换当前项的选中状态。

Tab/Backtab

更改当前项到下一个/上一个项目。

Home/End

选择模型中的第一个/最后一个项目。

Page up/Page down

根据视图中可见行数向上/向下滚动显示的行。

Ctrl+A

选择模型中的所有项目。

注意,上述表格假设 selection mode 允许操作。例如,如果选择模式是 NoSelection ,则无法选择项目。

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

继承自 QAbstractItemView 的视图类只需要实现它们自己的视图特定功能,例如绘制项、返回项的几何形状、查找项等。

QAbstractItemView 提供了一些常见的槽函数,如 edit()setCurrentIndex() 。同时提供了一些受保护的槽函数,包括 dataChanged()rowsInserted()rowsAboutToBeRemoved()selectionChanged()currentChanged()

通过 rootIndex() 返回根项,通过 currentIndex() 返回当前项。要确保项可见,请使用 scrollTo()

PySide6.QtWidgets.QAbstractItemView的一些函数与滚动功能有关,例如setHorizontalScrollMode()setVerticalScrollMode()。要设置滚动条的显示范围,可以重写视图的resizeEvent()函数。

def resizeEvent(self, event):
    horizontalScrollBar().setRange(0, realWidth - width())
    ...

需要注意的是,只有当小部件显示出来后,范围才会更新。

其他一些函数与选择控制相关,例如setSelectionMode()setSelectionBehavior()。此类提供了一个默认的选择模型以供使用(selectionModel()),但可以使用QItemSelectionModel实例通过setSelectionModel()进行替换。

为了完全控制项目的显示和编辑,可以通过setItemDelegate()指定代理。

PySide6.QtWidgets.QAbstractItemView提供了一个大量的保护函数。其中一些与编辑相关,例如edit()commitData(),而其他则是键盘和鼠标事件处理程序。

注意

如果你继承自PySide6.QtWidgets.QAbstractItemView且打算更新可视区的内容,你应该使用update()而不是QWidget的update(),因为所有绘图操作都发生在可视区。

另请参阅

视图类 模型/视图编程 QAbstractItemModel

class

此枚举指示视图如何响应用户选择

常量

描述

QAbstractItemView.SingleSelection

当用户选择一个项时,任何已选择的项将取消选择。用户可以通过在单击已选择的项时按 Ctrl 键来取消选择所选项。

QAbstractItemView.ContiguousSelection

用户通常方式选择一个项时,选择被清除,并选择新项。然而,如果用户在单击项时按住 Shift 键,则根据单击项的状态选择或取消选择当前项和单击项之间的所有项。

QAbstractItemView.ExtendedSelection

用户通常方式选择一个项时,选择被清除,并选择新项。然而,如果用户在单击项时按住 Ctrl 键,则单击项会切换,而其他项保持不变。如果用户在单击项时按住 Shift 键,则根据单击项的状态选择或取消选择当前项和单击项之间的所有项。可以通过拖动鼠标选择多个项。

QAbstractItemView.MultiSelection

用户通常方式选择一个项时,该项的选择状态将被切换,而其他项保持不变。可以通过拖动鼠标选择多个项。

QAbstractItemView.NoSelection

项不可选择。

最常用的模式是SingleSelection和ExtendedSelection。

class SelectionBehavior#

常量

描述

QAbstractItemView.SelectItems

选择单个项。

QAbstractItemView.SelectRows

只选择行。

QAbstractItemView.SelectColumns

只选择列。

class ScrollHint#

常量

描述

QAbstractItemView.EnsureVisible

滚动以确保项可见。

QAbstractItemView.PositionAtTop

滚动以将项定位在视口顶部。

QAbstractItemView.PositionAtBottom

滚动以将项定位在视口底部。

QAbstractItemView.PositionAtCenter

滚动以将项定位在视口中心。

class EditTrigger#

(继承自 enum.Flag) 此枚举描述将引发项编辑的操作。

常量

描述

QAbstractItemView.NoEditTriggers

无法进行编辑。

QAbstractItemView.CurrentChanged

当前项更改时开始编辑。

QAbstractItemView.DoubleClicked

双击项时开始编辑。

QAbstractItemView.SelectedClicked

单击已选择的项时开始编辑。

QAbstractItemView.EditKeyPressed

按平台编辑键后在项上开始编辑。

QAbstractItemView.AnyKeyPressed

在任何项上按任何键时开始编辑。

QAbstractItemView.AllEditTriggers

所有上述操作都会开始编辑。

class ScrollMode#

描述滚动条应该如何表现。当将滚动模式设置为 ScrollPerPixel 时,单步大小将自动调整,除非已显式使用 setSingleStep() 设置。可以通过将单步大小设置为 -1 恢复自动调整。

常量

描述

QAbstractItemView.ScrollPerItem

视图将逐个项滚动内容。

QAbstractItemView.ScrollPerPixel

视图将逐像素滚动内容。

class DragDropMode#

描述了视图可以执行的拖放事件。默认情况下,视图不支持拖放操作(NoDragDrop)。

常量

描述

QAbstractItemView.NoDragDrop

不支持拖放操作。

QAbstractItemView.DragOnly

视图支持拖动其自己的项目。

QAbstractItemView.DropOnly

视图接受拖入。

QAbstractItemView.DragDrop

视图支持拖放操作。

QAbstractItemView.InternalMove

视图仅接受自身的移动(不复制)操作。

请注意使用的模型需要提供对拖放操作的支持。

class CursorAction#

此枚举描述了在项目之间导航的不同方式。

常量

描述

QAbstractItemView.MoveUp

移动到当前项目上方的项目。

QAbstractItemView.MoveDown

移动到当前项目下方的项目。

QAbstractItemView.MoveLeft

移动到当前项目左侧的项目。

QAbstractItemView.MoveRight

移动到当前项目右侧的项目。

QAbstractItemView.MoveHome

移动到左上角的项目。

QAbstractItemView.MoveEnd

移动到底右角的项目。

QAbstractItemView.MovePageUp

向上移动一页,到达当前项目上方。

QAbstractItemView.MovePageDown

向下移动一页,到达当前项目下方。

QAbstractItemView.MoveNext

移动到当前项目之后的项目。

QAbstractItemView.MovePrevious

移动到当前项目之前的项目。

另请参阅

moveCursor()

class State#

描述视图可以处于的不同状态。这通常只在重新实现自己的视图时才有意义。

常量

描述

QAbstractItemView.NoState

这是默认状态。

QAbstractItemView.DraggingState

用户正在拖动项目。

QAbstractItemView.DragSelectingState

用户正在选择项目。

QAbstractItemView.EditingState

用户正在一个表单编辑器中编辑项目。

QAbstractItemView.ExpandingState

用户正在展开项目的一个分支。

QAbstractItemView.CollapsingState

用户正在折叠项目的一个分支。

QAbstractItemView.AnimatingState

项视图正在执行动画。

class DropIndicatorPosition#

此枚举指出了在当前鼠标位置索引相关的拖放指示器的位置。

常量

描述

QAbstractItemView.OnItem

项目将被拖放到索引上。

QAbstractItemView.AboveItem

项目将被拖放到索引之上。

QAbstractItemView.BelowItem

项目将被拖放到索引之下。

QAbstractItemView.OnViewport

项目将被拖放到视口中的无项目区域。每个视图处理拖放到视口中的项目的方式取决于使用的底层模型的操作。

注意

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

属性alternatingRowColors: 布尔值#

该属性决定是否使用交替颜色绘制背景。

如果此属性设置为 true,则将使用 QPalette::Base 和 QPalette::AlternateBase 绘制项目背景;否则,将使用 QPalette::Base 颜色绘制背景。

默认情况下,此属性为 false

访问函数
属性autoScroll: 布尔值#

该属性决定是否在拖动事件中启用自动滚动。

如果此属性设置为 true(默认值),当用户在视口边缘16像素内拖动时,QAbstractItemView 将自动滚动视图内容。如果当前项发生变化,则视图将自动滚动以确保当前项完全可见。

此属性仅在视口可以接受拖动时生效。将此属性设置为 false 可以关闭自动滚动。

访问函数
属性autoScrollMargin: 整数值#

此属性表示触发自动滚动时的区域大小。

此属性控制触发自动滚动的视口边缘区域的大小。默认值为16像素。

访问函数
属性defaultDropAction: Qt.DropAction#

此属性决定在 QAbstractItemView::drag() 中默认使用的拖动操作。

如果未设置此属性,并且在支持的操作中支持 CopyAction,则默认的拖动操作为 CopyAction。

访问函数
属性dragDropMode: QAbstractItemView.DragDropMode#

此属性决定视图将如何处理拖放事件。

访问函数
属性 dragDropOverwriteMode: bool#

此属性存储视图的拖放行为。

如果其值为 true,则在放下时选定的数据将覆盖现有项目数据,移动数据会清空项目。如果其值为 false,则在放下数据时选定的数据将作为新项目插入。当移动数据时,项目也将被删除。

默认值为 false,类似于在 QListViewQTreeView 子类中。另一方面,在 QTableView 子类中,此属性已被设置为 true

注意:这并不是为了防止项目的覆盖。应通过模型 flags() 的实现来防止覆盖,方法是不返回 Qt::ItemIsDropEnabled。

另请参阅

dragDropMode

访问函数
属性 dragEnabled: bool#

此属性表示视图是否支持自己项目的拖动。

访问函数
属性 editTriggers: QAbstractItemView.EditTrigger 的组合#

此属性存储会引发项目编辑的动作。

这个属性是使用 OR 操作符组合定义的标志集,这些标志由 EditTrigger 确定。如果执行的动作设置在本属性中,则视图将开始编辑项目。

访问函数
属性 horizontalScrollMode: QAbstractItemView.ScrollMode#

此属性存储视图如何水平滚动其内容。

这个属性控制视图如何水平滚动其内容。滚动可以按像素或按项目进行。其默认值来自样式文件,通过SH_ItemView_ScrollMode样式提示。

访问函数
属性iconSize:QSize#

此属性保存项目图标的尺寸。

当视图可见时设置此属性将导致重新布局项目。

访问函数
属性selectionBehavior:QAbstractItemView.SelectionBehavior#

此属性保存视图使用的选择行为。

此属性保存是否基于单个项目、行或列进行选择。

访问函数
属性selectionMode:QAbstractItemView.SelectionMode#

此属性保存视图操作的选择模式。

此属性控制用户是否可以选中单个或多个项目,以及在多项目选择中,选择是否必须是一系列连续的项目。

访问函数
属性showDropIndicator:bool#

此属性保存在拖动项目和放置时是否显示放置指示器。

访问函数
属性 tabKeyNavigation: bool#

此属性表示是否启用了tab和backtab键进行项导航。

访问函数
属性 textElideMode: Qt.TextElideMode#

此属性表示省略文本中“…”的位置。

所有项视图的默认值是Qt::ElideRight。

访问函数
属性 verticalScrollMode: QAbstractItemView.ScrollMode#

此属性表示视图如何在垂直方向滚动其内容。

此属性控制视图如何垂直滚动其内容。滚动可以是按像素或按项进行的。其默认值来自样式,通过SH_ItemView_ScrollMode样式提示获取。

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

parentQWidget

使用指定的parent构造一个抽象项视图。

activated(index)#
参数:

indexQModelIndex

当用户激活由index指定的项时,会发出此信号。激活项的方式取决于平台;例如,通过单击或双击项,或者当项处于当前状态时按Return或Enter键。

alternatingRowColors()#
返回类型:

bool

属性 alternatingRowColors 的获取器。

autoScrollMargin()#
返回类型:

int

另请参阅

setAutoScrollMargin()

属性 autoScrollMargin 的获取器。

clearSelection()#

取消选择所有已选择项。当前索引将不会更改。

clicked(index)#
参数:

indexQModelIndex

当鼠标左键被按下时会发出此信号。通过 index 指定被点击的项。只有当索引有效时,才会发出信号。

closeEditor(editor, hint)#
参数:

关闭给定的 editor 并释放它。通过 hint 指定视图如何响编辑操作的结束。例如,提示可以指示应当应用编辑的操作结束于视图中下一项。

另请参阅

edit() commitData()

closePersistentEditor(index)#
参数:

indexQModelIndex

关闭给定 index 的项目的持久性编辑器。

commitData(editor)#
参数:

editorQWidget

editor 中的数据提交到模型。

currentChanged(current, previous)#
参数:

当新项成为当前项时调用此槽函数。根据 previous 索引指定上一个当前项,根据 current 索引指定新项。

如果您想了解项的变化,请参见 dataChanged() 信号。

currentIndex()#
返回类型:

QModelIndex

返回当前项的模型索引。

另请参阅

setCurrentIndex()

dataChanged(topLeft, bottomRight[, roles=list()])#
参数:

当模型中给定 roles 的项发生变化时调用此槽函数。变化的项是从 topLeftbottomRight 的。如果只更改了一个项,则 topLeft == bottomRight

已更改的 roles 可以是一个空的容器(表示一切都有变化),也可以是一个非空的容器,其中包含已更改的子集。

注意

注意:Qt::ToolTipRole 在 Qt 提供的视图中的 dataChanged() 信号中不受尊重。

defaultDropAction()#
返回类型:

DropAction

另请参阅

setDefaultDropAction()

属性 defaultDropAction 的获取器。

dirtyRegionOffset()#
返回类型:

QPoint

返回视图中脏区域的偏移量。

如果您使用 scrollDirtyRegion() 并在一个 QAbstractItemView 的子类中实现 paintEvent() ,则应该使用此函数返回的偏移量转换 paint 事件提供的区域。

doAutoScroll()#
doItemsLayout()#
doubleClicked(index)#
参数:

indexQModelIndex

当鼠标按键被双击时,发出此信号。通过 index 指定鼠标双击的项目。只有在索引有效时,才会发出此信号。

另请参阅

clicked() activated()

dragDropMode()#
返回类型:

DragDropMode

另请参阅

setDragDropMode()

属性 dragDropMode 的获取器。

dragDropOverwriteMode()#
返回类型:

bool

属性 dragDropOverwriteMode 的获取器。

dragEnabled(index)#
返回类型:

bool

另请参阅

setDragEnabled()

属性 dragEnabled 的获取器。

dropIndicatorPosition()#
返回类型:

DropIndicatorPosition

返回相对于最近物品的放置指示器的位置。

edit(index)#
参数:

indexQModelIndex

如果对应的 index 可编辑,则开始编辑。

请注意,此函数不会改变当前索引。由于当前索引定义了下一个和上一个要编辑的项,用户可能会发现键盘导航不起作用。为了提供一致的导航行为,请在调用该函数之前使用相同的模型索引调用 setCurrentIndex()

另请参阅

flags()

edit(index, trigger, event)
参数:
返回类型:

bool

尝试在 index 处编辑项,如果需要,创建一个编辑器,如果视图的 State 现在是 EditingState 则返回 true,否则返回 false

导致编辑过程的行为由 trigger 描述,并由 event 定义。

可以通过指定 triggerAllEditTriggers 强制编辑。

editTriggers()#
返回类型:

EditTrigger 的组合

另请参阅

setEditTriggers()

editTriggersᅟ 属性的获取器。

editorDestroyed(editor)#
参数:

editorQObject

该函数在指定的 editor 被销毁时被调用。

entered(index)#
参数:

indexQModelIndex

当鼠标指针进入由 index 指定的项时,发出此信号。需要启用鼠标跟踪此功能才能正常工作。

executeDelayedItemsLayout()#

执行预定的布局而无需等待事件处理开始。

hasAutoScroll()#
返回类型:

bool

获取属性的 getter autoScroll .

abstracthorizontalOffset()#
返回类型:

int

返回视图的水平偏移量。

在基类中,这是一个纯虚函数。

另请参阅

verticalOffset()

horizontalScrollMode()#
返回类型:

ScrollMode

获取属性的 getter horizontalScrollMode .

horizontalScrollbarAction(action)#
参数:

action – int

horizontalScrollbarValueChanged(value)#
参数:

value – int

iconSize()#
返回类型:

QSize

另请参阅

setIconSize()

获取属性的 getter iconSize .

iconSizeChanged(size)#
参数:

大小QSize

属性 iconSize 的通知信号。

抽象 indexAt(point) #
参数:

pointQPoint

返回类型:

QModelIndex

返回视口坐标 point 的项目的模型索引。

在基类中,这是一个纯虚函数。

另请参阅

visualRect()

indexWidget(index) #
参数:

indexQModelIndex

返回类型:

QWidget

返回给定 index 的项目的控件。

另请参阅

setIndexWidget()

initViewItemOption(option) #
参数:

optionQStyleOptionViewItem

使用视图的调色板、字体、状态、对齐等初始化 option 结构。

注意

此方法的实现应检查接收到的结构体的 版本,填充实现熟悉的全部成员,并在返回前将版本成员设置为实施支持的版本。

抽象 isIndexHidden(index) #
参数:

indexQModelIndex

返回类型:

bool

如果给定 index 指代的项目在视图中隐藏,则返回 true;否则返回 false

隐藏是视图特定功能。例如,在 TableView 中可以标记列为隐藏,或在 TreeView 中隐藏行。

在基类中,这是一个纯虚函数。

isPersistentEditorOpen(index) #
参数:

indexQModelIndex

返回类型:

bool

返回在索引 index 的项处是否打开持久性编辑器。

itemDelegate() #
返回类型:

QAbstractItemDelegate

返回由该视图和模型使用的项目委托。这要么是与 setItemDelegate 一起设置的,要么是默认的。

另请参阅

setItemDelegate()

itemDelegate(index)
参数:

indexQModelIndex

返回类型:

QAbstractItemDelegate

注意

此函数已弃用。

请使用 itemDelegateForIndex() 代替。它返回用于给定 index 的该视图和模型所用的项目代理。

itemDelegateForColumn(column)#
参数:

column - int

返回类型:

QAbstractItemDelegate

返回用于给定 column 的该视图和模型所用的项目代理。您可以通过调用 itemDelegate() 来获取当前索引的代理指针。

itemDelegateForIndex(index)#
参数:

indexQModelIndex

返回类型:

QAbstractItemDelegate

返回用于给定 index 的该视图和模型所用的项目代理。

itemDelegateForRow(row)#
参数:

row

返回类型:

QAbstractItemDelegate

返回用于给定 row 的该视图和模型所用的项目代理,如果没有分配代理则返回 None。您可以通过调用 itemDelegate() 来获取当前索引的代理指针。

keyboardSearch(search)#
参数:

search – str

将光标移动到与字符串 search 最匹配的项目,并选择该项目。如果没有找到任何项目,则不执行任何操作。

在默认实现中,如果 search 为空,或者自上次搜索以来已超过 keyboardInputInterval() 定义的时间间隔,则重置搜索。

model()#
返回类型:

QAbstractItemModel

返回显示该视图的模型。

另请参阅

setModel()

abstract moveCursor(cursorAction, modifiers)#
参数:
返回类型:

QModelIndex

基于给定的 cursorActionmodifiers 中指定的键盘修饰符,返回指向视图中的下一个对象的 QModelIndex 对象。

在基类中,这是一个纯虚函数。

openPersistentEditor(index)#
参数:

indexQModelIndex

在给定 index 处的项目上打开一个持久性编辑器。如果没有存在编辑器,代理将创建一个新的编辑器。

pressed(index)#
参数:

indexQModelIndex

当鼠标按钮按下时发出此信号。通过 index 指定鼠标按下时的项目。只有当索引有效时才会发出此信号。

使用 QGuiApplication::mouseButtons() 函数获取鼠标按钮的状态。

reset()#

重置视图的内部状态。

警告

此函数将重置打开的编辑器、滚动条位置、选择等。现有更改不会提交。如果您希望在重置视图时保存更改,您可以重写此函数,提交更改,然后调用超类的实现。

resetHorizontalScrollMode()#

属性 horizontalScrollMode 的重置函数。

resetVerticalScrollMode()#

属性 verticalScrollMode 的重置函数。

rootIndex()#
返回类型:

QModelIndex

返回模型根项的模型索引。根项是视图顶级项目的父项。根项可能无效。

另请参阅

setRootIndex()

rowsAboutToBeRemoved(parent, start, end)#
参数:

当行将要被删除时调用此槽。要删除的行是从 startend(包含)的范围在给定 parent 下的行。

另请参阅

rowsInserted()

rowsInserted(parent, start, end)#
参数:

当行被插入时调用此槽。新行是从 startend(包含)的范围在给定 parent 下的行。基类实现会在模型上调用 fetchMore() 来检查更多数据。

另请参阅

rowsAboutToBeRemoved()

scheduleDelayedItemsLayout()#

调度在事件处理开始时执行视图中的项布局。

即使多次调用scheduleDelayedItemsLayout(),事件处理之前,视图也只会布局一次。

scrollDirtyRegion(dx, dy)#
参数:
  • dx – int

  • dy – int

通过将脏区移动到相反方向,将视图准备为以 (dx, ``dy``) 像素滚动。只有在你实现的视图子类中实现滚动视口时,才需要调用此函数。

如果你在 scrollContentsBy()QAbstractItemView 子类中实现,请在调用视口上的 scroll() 之前调用此函数。或者,直接调用 update()

abstract scrollTo(index[, hint=QAbstractItemView.ScrollHint.EnsureVisible])#
参数:

如果需要,滚动视图以确保 index 的项目可见。视图将尝试根据给定的 hint 来定位项目。

在基类中,这是一个纯虚函数。

scrollToBottom()#

滚动视图到底部。

另请参阅

scrollTo() scrollToTop()

scrollToTop()#

滚动视图到顶部。

selectAll()#

选择视图中所有项。此函数在选择时将使用视图上设置的选区行为。

selectedIndexes()#
返回类型:

QModelIndex 列表

此便捷函数返回视图中所有选中项和非隐藏项的索引列表。列表不包含重复项,并且未排序。

另请参阅

selectedIndexes()

selectionBehavior()#
返回类型:

SelectionBehavior

另请参阅

setSelectionBehavior()

属性 selectionBehaviorᅟ 的获取器。

selectionChanged(selected, deselected)#
参数:

当选择更改时调用此槽。之前的选区(可能为空)通过 deselected 指定,新的选区通过 selected 指定。

另请参阅

setSelection()

selectionCommand(index[, event=None])#
参数:
返回类型:

SelectionFlag 组合

返回用于更新指定 index 的选区模型时要使用的 SelectionFlag。结果取决于当前的 selectionMode() 以及用户输入事件 event(可以是 None)。

重写此函数以定义自己的选择行为。

另请参阅

setSelection()

selectionMode()#
返回类型:

SelectionMode

另请参阅

setSelectionMode()

属性 selectionMode 的获取器。

selectionModel()#
返回类型:

QItemSelectionModel

返回当前选择模型。

setAlternatingRowColors(enable)#
参数:

enable – bool

另请参阅

alternatingRowColors()

属性 alternatingRowColors 的设置器。

setAutoScroll(enable)#
参数:

enable – bool

另请参阅

hasAutoScroll()

属性 autoScroll 的设置器。

setAutoScrollMargin(margin)#
参数:

margin – int

另请参阅

autoScrollMargin()

属性 autoScrollMargin 的设置器。

setCurrentIndex(index)#
参数:

indexQModelIndex

将当前项设置为索引为 index 的项。

除非当前选择模式是 NoSelection,否则该项也会被选中。注意,此函数还会更新用户执行任何新选择时的起始位置。

要将项设置为当前项而不选中它,请调用

selectionModel()->setCurrentIndex(index, QItemSelectionModel::NoUpdate);

setDefaultDropAction(dropAction)#
参数:

dropActionDropAction

另请参阅

defaultDropAction()

属性 defaultDropAction 的设置器。

setDirtyRegion(region)#
参数:

regionQRegion

将给定的 region 标记为脏并计划更新。如果您正在实现自己的视图子类,则需要调用此函数。

setDragDropMode(behavior)#
参数:

behaviorDragDropMode

另请参阅

dragDropMode()

属性 dragDropMode 的设置器。

setDragDropOverwriteMode(overwrite)#
参数:

overwrite – bool

属性 dragDropOverwriteMode 的设置器。

setDragEnabled(enable)#
参数:

enable – bool

另请参阅

dragEnabled()

属性 dragEnabled 的设置器。

setDropIndicatorShown(enable)#
参数:

enable – bool

属性 showDropIndicator 的设置器。

setEditTriggers(triggers)#
参数:

triggersEditTrigger 的组合

另请参阅

editTriggers()

属性 editTriggers 的设置器。

setHorizontalScrollMode(mode)#
参数:

模式ScrollMode

另请参阅

horizontalScrollMode()

属性horizontalScrollModeᅟ 的设置器。

setIconSize(size)#
参数:

大小QSize

另请参阅

iconSize()

属性iconSizeᅟ 的设置器。

setIndexWidget(index, widget)#
参数:

警告

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

设置在给定 index 的项目上指定的 widget,将小部件的所有权传递给视口。

如果 index 无效(例如,如果您传递根索引),此函数将不执行任何操作。

给定 widgetautoFillBackground 属性必须设置为 true,否则小部件的背景将透明,显示模型数据和给定 index 的项目。

如果用索引小部件 A 替换索引小部件 B,则索引小部件 A 将被删除。例如,在下面的代码片段中,QLineEdit 对象将被删除。

setIndexWidget(index, QLineEdit())
...
setIndexWidget(index, QTextEdit())

此功能仅应用于显示与数据项目的可见区域相对应的静态内容。如果您想显示自定义动态内容或实现自定义编辑器小部件,请改用 QStyledItemDelegate

另请参阅

indexWidget() 委托类

setItemDelegate(delegate)#
参数:

委托QAbstractItemDelegate

为此视图及其模型设置项目委托为 delegate。如果您想完全控制项目的编辑和显示,这将很有用。

将删除现有委托,但不会删除它。 QAbstractItemView 不拥有 delegate

警告

不要在视图中共享同一个代理实例。这样做可能导致不正确或不直观的编辑行为,因为每个连接到给定代理的视图可能都会接收到closeEditor()信号,并尝试访问、修改或关闭已经关闭的编辑器。

另请参阅

itemDelegate()

setItemDelegateForColumn(column, delegate)#
参数:

为给定视图和模型设置用于给定column的项delegate。位于column的所有项将由delegate绘制和管理,而不是使用默认代理(即itemDelegate())。

将删除现有的column列代理,但不会删除它。《a class="reference internal" href="#PySide6.QtWidgets.QAbstractItemView" title="PySide6.QtWidgets.QAbstractItemView">QAbstractItemView不会获得delegate的所有权。

注意

如果委托同时分配给了行和列,则行代理将具有优先权并管理交集单元格索引。

警告

不要在视图中共享同一个代理实例。这样做可能导致不正确或不直观的编辑行为,因为每个连接到给定代理的视图可能都会接收到closeEditor()信号,并尝试访问、修改或关闭已经关闭的编辑器。

setItemDelegateForRow(row, delegate)#
参数:

为给定视图和模型设置用于给定row的项delegate。位于row的所有项将由delegate绘制和管理,而不是使用默认代理(即itemDelegate())。

将删除现有的row行代理,但不会删除它。《a class="reference internal" href="#PySide6.QtWidgets.QAbstractItemView" title="PySide6.QtWidgets.QAbstractItemView">QAbstractItemView不会获得delegate的所有权。

注意

如果委托同时分配给了行和列,则行代理(即这个代理)将具有优先权并管理交集单元格索引。

警告

不要在视图中共享同一个代理实例。这样做可能导致不正确或不直观的编辑行为,因为每个连接到给定代理的视图可能都会接收到closeEditor()信号,并尝试访问、修改或关闭已经关闭的编辑器。

setModel(model)#
参数:

model - QAbstractItemModel

警告

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

设置用于展示的视图的 model

此函数将创建并设置一个新的选择模型,覆盖之前由 setSelectionModel() 设置的任何模型。但是,旧的选择模型不会被删除,因为它可能被多个视图共享。如果不再需要旧的选择模型,建议您删除它。这可以通过以下代码完成

m = view.selectionModel()
view.setModel(model())
del m

如果旧模型和旧选择模型都没有父对象,或者它们的父对象是长期对象,那么调用它们的 deleteLater() 函数来显式删除它们可能更合适。

视图 不会 拥有模型的所有权,除非它是模型的父对象,因为模型可能被许多不同的视图共享。

setRootIndex(index)#
参数:

indexQModelIndex

将根项设置为给定 index 的项。

另请参阅

rootIndex()

abstract setSelection(rect, command)#
参数:

将选择标志 flags 应用到矩形内的项或与之接触的项上。

在实现自己的 itemView 时,setSelection 应该调用 selectionModel() -> select(selection, flags),其中 selection 或者为空的 QModelIndex,或者是一个 QItemSelection,它包含了 rect 中包含的所有项。

setSelectionBehavior(behavior)#
参数:

behaviorSelectionBehavior

另请参阅

selectionBehavior()

设置selectionBehavior 属性。

setSelectionMode(mode)#
参数:

modeSelectionMode

另请参阅

selectionMode()

设置selectionMode 属性。

setSelectionModel(selectionModel)#
参数:

selectionModelQItemSelectionModel

将当前选择模型设置为提供的 selectionModel

注意,如果在调用此函数之后调用 setModel(),则提供的 selectionModel 将被视图创建的模型替换。

注意

如果不再需要旧的模型选择器(例如,它没有被其他视图使用),则应用程序应删除它;也就是说,当其父对象被删除时,这将自动发生。然而,如果没有父对象,或者父对象是长生命周期对象,则可能最好调用其 deleteLater() 函数来显式删除它。

setState(state)#
参数:

stateState

将项目视图的状态设置为提供的 state

另请参阅

state()

setTabKeyNavigation(enable)#
参数:

enable – bool

另请参阅

tabKeyNavigation()

设置tabKeyNavigation属性的值。

setTextElideMode(mode)#
参数:

modeQt.TextElideMode

另请参阅

textElideMode()

设置textElideMode属性的值。

setVerticalScrollMode(mode)#
参数:

模式ScrollMode

另请参阅

verticalScrollMode()

设置verticalScrollMode属性的值。

showDropIndicator()#
返回类型:

bool

获取showDropIndicator属性的值。

sizeHintForColumn(column)#
参数:

column - int

返回类型:

int

返回指定column的宽度大小提示或如果没有模型则返回-1。

此函数在具有水平表头的视图中使用,根据指定column的内容找到表头部分的大小提示。

另请参阅

sizeHintForRow()

sizeHintForIndex(index)#
参数:

indexQModelIndex

返回类型:

QSize

返回指定index的项的大小提示或对于无效索引返回无效大小。

sizeHintForRow(row)#
参数:

row

返回类型:

int

返回指定row的高度大小提示或如果没有模型则返回-1。

返回的高度是通过对给定 row 的项的大小提示进行计算的,即返回值是所有项中的最大高度。请注意,为了控制行的高度,您必须重写 sizeHint() 函数。

此函数用于具有垂直表头的视图中,根据给定 row 的内容找到表头部分的尺寸提示。

另请参阅

sizeHintForColumn()

startAutoScroll()#
startDrag(supportedActions)#
参数:

supportedActionsDropAction 的组合

通过调用 supportedActions 的 drag->exec() 来启动拖动。

state()#
返回类型:

状态

返回项视图的状态。

另请参阅

setState()

stopAutoScroll()#
tabKeyNavigation()#
返回类型:

bool

另请参阅

setTabKeyNavigation()

属性 tabKeyNavigationᅟ 的获取器。

textElideMode()#
返回类型:

TextElideMode

另请参阅

setTextElideMode()

属性 textElideModeᅟ 的获取器。

update(index)#
参数:

indexQModelIndex

更新给定 index 所占区域。

updateEditorData()#
updateEditorGeometries()#
updateGeometries()#

更新视图子小部件的几何形状。

abstract verticalOffset()#
返回类型:

int

返回视图的垂直偏移量。

在基类中,这是一个纯虚函数。

另请参阅

horizontalOffset()

verticalScrollMode()#
返回类型:

ScrollMode

属性 verticalScrollModeᅟ 的获取器。

verticalScrollbarAction(action)#
参数:

action – int

verticalScrollbarValueChanged(value)#
参数:

value – int

viewportEntered()#

当鼠标光标进入视口时发出此信号。启用鼠标跟踪功能才能使用此功能。

另请参阅

进入()

abstract visualRect(index)#
参数:

indexQModelIndex

返回类型:

QRect

返回索引为 index 的项目在视口内占用的矩形。

如果您的项目显示在几个区域中,则 visualRect 应返回包含索引的主区域,而不是索引可能包含、触摸或引起绘制的完整区域。

在基类中,这是一个纯虚函数。

abstract visualRegionForSelection(selection)#
参数:

选择QItemSelection

返回类型:

QRegion

返回给定选择的项在视口中的区域。

在基类中,这是一个纯虚函数。