PySide6.QtWidgets.QAbstractItemView

class QAbstractItemView

QAbstractItemView 类为项目视图类提供了基本功能。更多

PySide6.QtWidgets.QAbstractItemView 的继承图

继承自: QTreeView, QTreeWidget, QHelpContentWidget, QTableView, QTableWidget, QListView, QUndoView, QListWidget, QHelpIndexWidget, QHeaderView, QColumnView

概要

属性

方法

虚拟方法

插槽

信号

注意

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

详细描述

警告

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

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

功能

箭头键

更改当前项目并选择它。

Ctrl+方向键

更改当前项目但不选择它。

Shift+箭头键

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

Ctrl+Space

切换当前项目的选择。

Tab/Backtab

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

Home/End

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

上页/下页

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

Ctrl+A

选择模型中的所有项目。

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

QAbstractItemView 类是 Model/View Classes 之一,并且是 Qt 的 model/view framework 的一部分。

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

QAbstractItemView 提供了常见的槽函数,例如 edit()setCurrentIndex()。还提供了许多受保护的槽函数,包括 dataChanged()rowsInserted()rowsAboutToBeRemoved()selectionChanged()currentChanged()

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

QAbstractItemView 的一些函数与滚动相关,例如 setHorizontalScrollMode()setVerticalScrollMode()。要设置滚动条的范围,您可以重新实现视图的 resizeEvent() 函数:

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

请注意,范围在小部件显示之前不会更新。

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

为了完全控制项目的显示和编辑,您可以使用setItemDelegate()指定一个委托。

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

注意

如果你继承了QAbstractItemView并打算更新视口的内容,你应该使用viewport-> update()而不是update(),因为所有的绘制操作都在视口上进行。

class SelectionMode

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

常量

描述

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

property alternatingRowColorsᅟ: bool

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

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

默认情况下,此属性为 false

Access functions:
property autoScrollᅟ: bool

此属性用于确定是否启用了拖动移动事件中的自动滚动。

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

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

Access functions:
property autoScrollMarginᅟ: int

此属性保存触发自动滚动时区域的大小。

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

Access functions:
property defaultDropActionᅟ: Qt.DropAction

此属性保存将在QAbstractItemView::drag()中默认使用的拖放操作。

如果未设置该属性,当支持的操作支持CopyAction时,拖放操作为CopyAction。

Access functions:
property dragDropModeᅟ: QAbstractItemView.DragDropMode

此属性保存视图将作用于的拖放事件。

Access functions:
property dragDropOverwriteModeᅟ: bool

此属性控制视图的拖放行为。

如果其值为true,则当数据被拖放时,所选数据将覆盖现有项目数据,同时移动数据将清除项目。如果其值为false,则当数据被拖放时,所选数据将作为新项目插入。当数据被移动时,项目也会被移除。

默认值为false,如在QListViewQTreeView子类中。另一方面,在QTableView子类中,该属性已设置为true

注意:这并不意味着防止项目被覆盖。模型的flags()实现应通过不返回Qt::ItemIsDropEnabled来实现这一点。

另请参阅

dragDropMode

Access functions:
property dragEnabledᅟ: bool

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

Access functions:
property editTriggersᅟ: Combination of QAbstractItemView.EditTrigger

此属性保存将启动项目编辑的操作。

此属性是由EditTrigger定义的标志的选择,使用OR运算符组合。只有在执行的操作设置在此属性中时,视图才会启动项目的编辑。

Access functions:
property horizontalScrollModeᅟ: QAbstractItemView.ScrollMode

此属性控制视图在水平方向上如何滚动其内容。

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

Access functions:
property iconSizeᅟ: QSize

此属性保存项目图标的大小。

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

Access functions:
property selectionBehaviorᅟ: QAbstractItemView.SelectionBehavior

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

此属性决定选择是以单个项目、行还是列为单位进行。

Access functions:
property selectionModeᅟ: QAbstractItemView.SelectionMode

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

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

Access functions:
property showDropIndicatorᅟ: bool

此属性用于确定在拖动和放置项目时是否显示放置指示器。

Access functions:
property tabKeyNavigationᅟ: bool

此属性用于确定是否启用了使用Tab和BackTab进行项目导航。

Access functions:
property textElideModeᅟ: Qt.TextElideMode

此属性保存省略文本中“…”的位置。

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

Access functions:
property verticalScrollModeᅟ: QAbstractItemView.ScrollMode

此属性控制视图在垂直方向上如何滚动其内容。

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

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

父级QWidget

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

activated(index)
Parameters:

索引QModelIndex

当用户激活由index指定的项目时,会发出此信号。如何激活项目取决于平台;例如,通过单击或双击项目,或在项目当前时按下Return或Enter键。

alternatingRowColors()
Return type:

布尔

属性 alternatingRowColorsᅟ 的获取器。

autoScrollMargin()
Return type:

整数

另请参阅

setAutoScrollMargin()

属性 autoScrollMarginᅟ 的获取器。

clearSelection()

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

clicked(index)
Parameters:

索引QModelIndex

当鼠标左键点击时,会发出此信号。鼠标点击的项目由index指定。只有当索引有效时,才会发出此信号。

closeEditor(editor, hint)
Parameters:

关闭给定的editor,并释放它。hint用于指定视图应如何响应编辑操作的结束。例如,提示可能表示应打开视图中的下一个项目进行编辑。

另请参阅

edit() commitData()

closePersistentEditor(index)
Parameters:

索引QModelIndex

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

commitData(editor)
Parameters:

编辑器QWidget

editor中的数据提交到模型。

另请参阅

closeEditor()

currentChanged(current, previous)
Parameters:

当新项目成为当前项目时,将调用此插槽。前一个当前项目由previous索引指定,新项目由current索引指定。

如果你想了解项目的更改情况,请查看dataChanged()信号。

currentIndex()
Return type:

QModelIndex

返回当前项目的模型索引。

另请参阅

setCurrentIndex()

dataChanged(topLeft, bottomRight[, roles=list()])
Parameters:

当模型中具有给定roles的项目发生更改时,将调用此插槽。更改的项目是从topLeftbottomRight(包括两者)的项目。如果只有一个项目更改,则topLeft == bottomRight

已更改的roles可以是一个空容器(意味着所有内容都已更改),也可以是一个包含已更改角色子集的非空容器。

注意

: Qt::ToolTipRole 在 Qt 提供的视图中不被 dataChanged() 所支持。

defaultDropAction()
Return type:

DropAction

另请参阅

setDefaultDropAction()

属性 defaultDropActionᅟ 的获取器。

dirtyRegionOffset()
Return type:

QPoint

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

如果你使用scrollDirtyRegion()并在QAbstractItemView的子类中实现paintEvent(),你应该用此函数返回的偏移量来转换绘制事件给出的区域。

doAutoScroll()
doItemsLayout()
doubleClicked(index)
Parameters:

索引QModelIndex

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

另请参阅

clicked() activated()

dragDropMode()
Return type:

DragDropMode

另请参阅

setDragDropMode()

属性 dragDropModeᅟ 的获取器。

dragDropOverwriteMode()
Return type:

布尔

属性 dragDropOverwriteModeᅟ 的获取器。

dragEnabled()
Return type:

布尔

另请参阅

setDragEnabled()

属性 dragEnabledᅟ 的获取器。

dropIndicatorPosition()
Return type:

DropIndicatorPosition

返回拖放指示器相对于最近项目的位置。

edit(index)
Parameters:

索引QModelIndex

如果可编辑,则开始编辑与给定index对应的项目。

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

另请参阅

flags()

edit(index, trigger, event)
Parameters:
Return type:

布尔

开始编辑位于index处的项目,如果需要则创建一个编辑器,如果视图的State现在是EditingState,则返回true;否则返回false

导致编辑过程的动作由trigger描述,相关事件由event指定。

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

另请参阅

closeEditor()

editTriggers()
Return type:

EditTrigger的组合

另请参阅

setEditTriggers()

属性 editTriggersᅟ 的获取器。

editorDestroyed(editor)
Parameters:

编辑器QObject

当给定的editor被销毁时,将调用此函数。

另请参阅

closeEditor()

entered(index)
Parameters:

索引QModelIndex

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

executeDelayedItemsLayout()

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

hasAutoScroll()
Return type:

布尔

属性 autoScrollᅟ 的获取器。

abstract horizontalOffset()
Return type:

整数

返回视图的水平偏移量。

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

另请参阅

verticalOffset()

horizontalScrollMode()
Return type:

ScrollMode

属性 horizontalScrollModeᅟ 的获取器。

horizontalScrollbarAction(action)
Parameters:

action – 整数

horizontalScrollbarValueChanged(value)
Parameters:

– int

iconSize()
Return type:

QSize

另请参阅

setIconSize()

属性 iconSizeᅟ 的获取器。

iconSizeChanged(size)
Parameters:

大小QSize

属性 iconSizeᅟ 的通知信号。

abstract indexAt(point)
Parameters:

QPoint

Return type:

QModelIndex

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

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

另请参阅

visualRect()

indexWidget(index)
Parameters:

索引QModelIndex

Return type:

QWidget

返回给定index处项目的小部件。

另请参阅

setIndexWidget()

initViewItemOption(option)
Parameters:

选项QStyleOptionViewItem

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

注意

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

abstract isIndexHidden(index)
Parameters:

索引QModelIndex

Return type:

布尔

如果给定index所引用的项在视图中隐藏,则返回true,否则返回false

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

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

isPersistentEditorOpen(index)
Parameters:

索引QModelIndex

Return type:

布尔

返回是否在索引 index 处为项目打开了持久编辑器。

itemDelegate()
Return type:

QAbstractItemDelegate

返回此视图和模型使用的项目委托。这可以是使用setItemDelegate()设置的委托,也可以是默认的委托。

另请参阅

setItemDelegate()

itemDelegate(index)
Parameters:

索引QModelIndex

Return type:

QAbstractItemDelegate

注意

此函数已弃用。

请使用itemDelegateForIndex()代替。返回此视图和模型用于给定index的项目委托。

itemDelegateForColumn(column)
Parameters:

– int

Return type:

QAbstractItemDelegate

返回此视图和模型用于给定column的项目委托。您可以调用itemDelegate()来获取给定索引的当前委托的指针。

itemDelegateForIndex(index)
Parameters:

索引QModelIndex

Return type:

QAbstractItemDelegate

返回此视图和模型用于给定index的项目委托。

itemDelegateForRow(row)
Parameters:

– 整数

Return type:

QAbstractItemDelegate

返回此视图和模型用于给定row的项目委托,如果未分配委托,则返回None。您可以调用itemDelegate()来获取给定索引的当前委托的指针。

keyboardSearch(search)
Parameters:

search – 字符串

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

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

model()
Return type:

QAbstractItemModel

返回此视图正在呈现的模型。

另请参阅

setModel()

abstract moveCursor(cursorAction, modifiers)
Parameters:
Return type:

QModelIndex

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

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

openPersistentEditor(index)
Parameters:

索引QModelIndex

在给定的index处打开一个持久编辑器。如果不存在编辑器,委托将创建一个新的编辑器。

pressed(index)
Parameters:

索引QModelIndex

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

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

reset()

重置视图的内部状态。

警告

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

resetHorizontalScrollMode()

属性 horizontalScrollModeᅟ 的重置功能。

resetVerticalScrollMode()

属性 verticalScrollModeᅟ 的重置功能。

rootIndex()
Return type:

QModelIndex

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

另请参阅

setRootIndex()

rowsAboutToBeRemoved(parent, start, end)
Parameters:

当行即将被移除时调用此插槽。被删除的行是从给定的parent下的startend(包括两端)的行。

另请参阅

rowsInserted()

rowsInserted(parent, start, end)
Parameters:

当插入行时调用此插槽。新行是从startend(包括两端)在给定parent下的那些行。基类实现在模型上调用fetchMore()以检查是否有更多数据。

另请参阅

rowsAboutToBeRemoved()

scheduleDelayedItemsLayout()

在事件处理开始时,安排视图中的项目布局执行。

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

scrollDirtyRegion(dx, dy)
Parameters:
  • dx – 整数

  • dy – 整数

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

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

abstract scrollTo(index[, hint=QAbstractItemView.ScrollHint.EnsureVisible])
Parameters:

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

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

scrollToBottom()

将视图滚动到底部。

另请参阅

scrollTo() scrollToTop()

scrollToTop()

将视图滚动到顶部。

selectAll()

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

selectedIndexes()
Return type:

QModelIndex 的列表

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

另请参阅

selectedIndexes()

selectionBehavior()
Return type:

SelectionBehavior

另请参阅

setSelectionBehavior()

属性 selectionBehaviorᅟ 的获取器。

selectionChanged(selected, deselected)
Parameters:

当选择发生变化时调用此插槽。之前的选择(可能为空)由deselected指定,新选择由selected指定。

另请参阅

setSelection()

selectionCommand(index[, event=None])
Parameters:
Return type:

SelectionFlag的组合

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

重新实现此函数以定义您自己的选择行为。

另请参阅

setSelection()

selectionMode()
Return type:

SelectionMode

另请参阅

setSelectionMode()

属性 selectionModeᅟ 的获取器。

selectionModel()
Return type:

QItemSelectionModel

返回当前的选择模型。

setAlternatingRowColors(enable)
Parameters:

enable – 布尔值

另请参阅

alternatingRowColors()

属性 alternatingRowColorsᅟ 的设置器。

setAutoScroll(enable)
Parameters:

enable – 布尔值

另请参阅

hasAutoScroll()

属性 autoScrollᅟ 的设置器。

setAutoScrollMargin(margin)
Parameters:

margin – int

另请参阅

autoScrollMargin()

属性 autoScrollMarginᅟ 的设置器。

setCurrentIndex(index)
Parameters:

索引QModelIndex

将当前项目设置为位于index处的项目。

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

要将一个项目设置为当前项目而不选择它,请调用

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

setDefaultDropAction(dropAction)
Parameters:

dropActionDropAction

另请参阅

defaultDropAction()

属性 defaultDropActionᅟ 的设置器。

setDirtyRegion(region)
Parameters:

区域QRegion

将给定的region标记为脏,并安排其更新。只有在实现自己的视图子类时,才需要调用此函数。

setDragDropMode(behavior)
Parameters:

行为DragDropMode

另请参阅

dragDropMode()

属性 dragDropModeᅟ 的设置器。

setDragDropOverwriteMode(overwrite)
Parameters:

overwrite – 布尔值

属性 dragDropOverwriteModeᅟ 的设置器。

setDragEnabled(enable)
Parameters:

enable – 布尔值

另请参阅

dragEnabled()

属性 dragEnabledᅟ 的设置器。

setDropIndicatorShown(enable)
Parameters:

enable – 布尔值

属性 showDropIndicatorᅟ 的设置器。

setEditTriggers(triggers)
Parameters:

触发器EditTrigger 的组合

另请参阅

editTriggers()

属性 editTriggersᅟ 的设置器。

setHorizontalScrollMode(mode)
Parameters:

modeScrollMode

另请参阅

horizontalScrollMode()

属性 horizontalScrollModeᅟ 的设置器。

setIconSize(size)
Parameters:

大小QSize

另请参阅

iconSize()

属性 iconSizeᅟ 的设置器。

setIndexWidget(index, widget)
Parameters:

警告

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

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

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

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

注意

视图接管了widget的所有权。这意味着如果索引小部件A被索引小部件B替换,索引小部件A将被删除。例如,在下面的代码片段中,QLineEdit对象将被删除。

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

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

另请参阅

indexWidget() 委托类

setItemDelegate(delegate)
Parameters:

delegateQAbstractItemDelegate

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

任何现有的委托将被移除,但不会被删除。QAbstractItemView 不拥有 delegate 的所有权。

警告

您不应在视图之间共享同一个委托实例。这样做可能会导致不正确或不符合直觉的编辑行为,因为连接到给定委托的每个视图可能会接收到closeEditor()信号,并尝试访问、修改或关闭已经关闭的编辑器。

另请参阅

itemDelegate()

setItemDelegateForColumn(column, delegate)
Parameters:

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

任何现有的column列委托将被移除,但不会被删除。QAbstractItemView不拥有delegate的所有权。

注意

如果已为行和列分配了委托,则行委托将优先并管理相交的单元格索引。

警告

您不应在视图之间共享同一个委托实例。这样做可能会导致不正确或不符合直觉的编辑行为,因为连接到给定委托的每个视图可能会接收到closeEditor()信号,并尝试访问、修改或关闭已经关闭的编辑器。

setItemDelegateForRow(row, delegate)
Parameters:

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

任何现有的row行委托将被移除,但不会被删除。QAbstractItemView不拥有delegate的所有权。

注意

如果已为行和列分配了委托,则行委托(即此委托)将优先并管理相交的单元格索引。

警告

您不应在视图之间共享同一个委托实例。这样做可能会导致不正确或不符合直觉的编辑行为,因为连接到给定委托的每个视图可能会接收到closeEditor()信号,并尝试访问、修改或关闭已经关闭的编辑器。

setModel(model)
Parameters:

模型QAbstractItemModel

警告

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

设置视图展示的model

此函数将创建并设置一个新的选择模型,替换之前使用setSelectionModel()设置的任何模型。然而,旧的选择模型不会被删除,因为它可能在多个视图之间共享。如果不再需要旧的选择模型,我们建议您删除它。这可以通过以下代码完成:

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

如果旧模型和旧选择模型都没有父对象,或者它们的父对象是长寿命对象,可能更倾向于调用它们的deleteLater()函数来显式删除它们。

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

setRootIndex(index)
Parameters:

索引QModelIndex

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

另请参阅

rootIndex()

abstract setSelection(rect, command)
Parameters:

将选择 flags 应用于矩形 rect 内或接触到的项目。

在实现你自己的itemview时,setSelection应该调用selectionModel() ->select(selection, flags),其中selection要么是一个空的QModelIndex,要么是一个包含rect中所有项目的QItemSelection。

setSelectionBehavior(behavior)
Parameters:

行为SelectionBehavior

另请参阅

selectionBehavior()

属性 selectionBehaviorᅟ 的设置器。

setSelectionMode(mode)
Parameters:

modeSelectionMode

另请参阅

selectionMode()

属性 selectionModeᅟ 的设置器。

setSelectionModel(selectionModel)
Parameters:

selectionModelQItemSelectionModel

将当前选择模型设置为给定的 selectionModel

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

注意

如果不再需要旧的选择模型,应用程序应负责删除它;也就是说,如果它没有被其他视图使用。当它的父对象被删除时,这将自动发生。然而,如果它没有父对象,或者父对象是一个长期存在的对象,可能更倾向于调用其deleteLater()函数来显式删除它。

setState(state)
Parameters:

状态State

将项目视图的状态设置为给定的 state

另请参阅

state()

setTabKeyNavigation(enable)
Parameters:

enable – 布尔值

另请参阅

tabKeyNavigation()

属性 tabKeyNavigationᅟ 的设置器。

setTextElideMode(mode)
Parameters:

modeTextElideMode

另请参阅

textElideMode()

属性 textElideModeᅟ 的设置器。

setVerticalScrollMode(mode)
Parameters:

modeScrollMode

另请参阅

verticalScrollMode()

属性 verticalScrollModeᅟ 的设置器。

showDropIndicator()
Return type:

布尔

属性 showDropIndicatorᅟ 的获取器。

sizeHintForColumn(column)
Parameters:

– int

Return type:

整数

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

此函数用于具有水平标题的视图中,以根据给定column的内容找到标题部分的大小提示。

另请参阅

sizeHintForRow()

sizeHintForIndex(index)
Parameters:

索引QModelIndex

Return type:

QSize

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

sizeHintForRow(row)
Parameters:

– 整数

Return type:

整数

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

返回的高度是使用给定row项的大小提示计算的,即返回值是项中的最大高度。请注意,要控制行的高度,您必须重新实现sizeHint()函数。

此函数用于具有垂直标题的视图中,根据给定的row内容查找标题部分的大小提示。

另请参阅

sizeHintForColumn()

startAutoScroll()
startDrag(supportedActions)
Parameters:

supportedActionsDropAction 的组合

通过使用给定的supportedActions调用drag->exec()来开始拖动。

state()
Return type:

State

返回项目视图的状态。

另请参阅

setState()

stopAutoScroll()
tabKeyNavigation()
Return type:

布尔

另请参阅

setTabKeyNavigation()

属性 tabKeyNavigationᅟ 的获取器。

textElideMode()
Return type:

TextElideMode

另请参阅

setTextElideMode()

属性 textElideModeᅟ 的获取器。

update(index)
Parameters:

索引QModelIndex

更新给定index所占用的区域。

updateEditorData()
updateEditorGeometries()
updateGeometries()

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

abstract verticalOffset()
Return type:

整数

返回视图的垂直偏移量。

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

另请参阅

horizontalOffset()

verticalScrollMode()
Return type:

ScrollMode

属性 verticalScrollModeᅟ 的获取器。

verticalScrollbarAction(action)
Parameters:

action – 整数

verticalScrollbarValueChanged(value)
Parameters:

– int

viewportEntered()

当鼠标光标进入视口时,会发出此信号。需要启用鼠标跟踪才能使此功能正常工作。

另请参阅

entered()

abstract visualRect(index)
Parameters:

索引QModelIndex

Return type:

QRect

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

如果你的项目在多个区域显示,那么visualRect应该返回包含index的主要区域,而不是index可能涵盖、触摸或引起绘制的完整区域。

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

abstract visualRegionForSelection(selection)
Parameters:

选择QItemSelection

Return type:

QRegion

返回给定selection中项目的视口区域。

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