- class QAbstractItemView#
提供基本功能项视图类的
QAbstractItemView
类。继承自:
QTreeView
,QTreeWidget
,QHelpContentWidget
,QTableView
,QTableWidget
,QListView
,QUndoView
,QListWidget
,QHelpIndexWidget
,QHeaderView
,QColumnView
概述#
属性#
alternatingRowColors
- 是否使用交替颜色绘制背景autoScroll
- 是否在拖动移动事件中启用自动滚动autoScrollMargin
- 自动滚动触发的区域大小defaultDropAction
- 在 QAbstractItemView::drag() 中默认使用的拖放操作dragDropMode
- 视图将作用其上的拖放事件dragDropOverwriteMode
- 视图的拖放行为dragEnabled
- 视图是否支持拖动其自己的项editTriggers
- 哪些动作将启动项目编辑horizontalScrollMode
- 视图如何在其内容水平方向上滚动
方法#
def __init__()
def currentIndex()
def doAutoScroll()
def dragDropMode()
def dragEnabled()
def editTriggers()
定义
iconSize()
定义
model()
定义
rootIndex()
定义
setState()
def
state()
def
stopAutoScroll()
def
textElideMode()
虚函数#
def
closeEditor()
def
commitData()
def
currentChanged()
def
dataChanged()
def
doItemsLayout()
def
edit()
def
indexAt()
def
isIndexHidden()
def
keyboardSearch()
def
moveCursor()
def
reset()
定义
scrollTo()
定义
selectAll()
定义
setModel()
定义
startDrag()
定义
visualRect()
槽函数#
信号#
定义
activated()
定义
clicked()
定义
entered()
定义
pressed()
注意
本文档可能包含从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
移动到当前项目之前的项目。
另请参阅
- 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
,类似于在QListView
和QTreeView
子类中。另一方面,在QTableView
子类中,此属性已被设置为true
。注意:这并不是为了防止项目的覆盖。应通过模型 flags() 的实现来防止覆盖,方法是不返回 Qt::ItemIsDropEnabled。
另请参阅
- 属性 dragEnabled: bool#
此属性表示视图是否支持自己项目的拖动。
另请参阅
showDropIndicator
DragDropMode
dragDropOverwriteMode
acceptDrops
- 属性 editTriggers: QAbstractItemView.EditTrigger 的组合#
此属性存储会引发项目编辑的动作。
这个属性是使用 OR 操作符组合定义的标志集,这些标志由
EditTrigger
确定。如果执行的动作设置在本属性中,则视图将开始编辑项目。- 属性 horizontalScrollMode: QAbstractItemView.ScrollMode#
此属性存储视图如何水平滚动其内容。
这个属性控制视图如何水平滚动其内容。滚动可以按像素或按项目进行。其默认值来自样式文件,通过
SH_ItemView_ScrollMode
样式提示。此属性保存项目图标的尺寸。
当视图可见时设置此属性将导致重新布局项目。
- 访问函数
信号
iconSizeChanged()
- 属性selectionBehavior:QAbstractItemView.SelectionBehavior#
此属性保存视图使用的选择行为。
此属性保存是否基于单个项目、行或列进行选择。
- 属性selectionMode:QAbstractItemView.SelectionMode#
此属性保存视图操作的选择模式。
此属性控制用户是否可以选中单个或多个项目,以及在多项目选择中,选择是否必须是一系列连续的项目。
- 属性showDropIndicator:bool#
此属性保存在拖动项目和放置时是否显示放置指示器。
另请参阅
dragEnabled
DragDropMode
dragDropOverwriteMode
acceptDrops
此属性表示是否启用了tab和backtab键进行项导航。
- 属性 textElideMode: Qt.TextElideMode#
此属性表示省略文本中“…”的位置。
所有项视图的默认值是Qt::ElideRight。
- 属性 verticalScrollMode: QAbstractItemView.ScrollMode#
此属性表示视图如何在垂直方向滚动其内容。
此属性控制视图如何垂直滚动其内容。滚动可以是按像素或按项进行的。其默认值来自样式,通过
SH_ItemView_ScrollMode
样式提示获取。使用指定的
parent
构造一个抽象项视图。- activated(index)#
- 参数:
index –
QModelIndex
当用户激活由
index
指定的项时,会发出此信号。激活项的方式取决于平台;例如,通过单击或双击项,或者当项处于当前状态时按Return或Enter键。- alternatingRowColors()#
- 返回类型:
bool
属性
alternatingRowColors
的获取器。- autoScrollMargin()#
- 返回类型:
int
属性
autoScrollMargin
的获取器。- clearSelection()#
取消选择所有已选择项。当前索引将不会更改。
- clicked(index)#
- 参数:
index –
QModelIndex
当鼠标左键被按下时会发出此信号。通过
index
指定被点击的项。只有当索引有效时,才会发出信号。- closeEditor(editor, hint)#
- 参数:
editor –
QWidget
hint –
EndEditHint
关闭给定的
editor
并释放它。通过hint
指定视图如何响编辑操作的结束。例如,提示可以指示应当应用编辑的操作结束于视图中下一项。另请参阅
- closePersistentEditor(index)#
- 参数:
index –
QModelIndex
关闭给定
index
的项目的持久性编辑器。将
editor
中的数据提交到模型。另请参阅
- currentChanged(current, previous)#
- 参数:
当前项(current) -
QModelIndex
上一项(previous) -
QModelIndex
当新项成为当前项时调用此槽函数。根据
previous
索引指定上一个当前项,根据current
索引指定新项。如果您想了解项的变化,请参见
dataChanged()
信号。- currentIndex()#
返回当前项的模型索引。
另请参阅
- dataChanged(topLeft, bottomRight[, roles=list()])#
- 参数:
左上(topLeft) -
QModelIndex
右下(bottomRight) -
QModelIndex
roles - int 类型的列表
当模型中给定
roles
的项发生变化时调用此槽函数。变化的项是从topLeft
到bottomRight
的。如果只更改了一个项,则topLeft
==bottomRight
。已更改的
roles
可以是一个空的容器(表示一切都有变化),也可以是一个非空的容器,其中包含已更改的子集。注意
注意:Qt::ToolTipRole 在 Qt 提供的视图中的 dataChanged() 信号中不受尊重。
- defaultDropAction()#
- 返回类型:
属性
defaultDropAction
的获取器。返回视图中脏区域的偏移量。
如果您使用
scrollDirtyRegion()
并在一个QAbstractItemView
的子类中实现paintEvent()
,则应该使用此函数返回的偏移量转换 paint 事件提供的区域。- doAutoScroll()#
- doItemsLayout()#
- doubleClicked(index)#
- 参数:
index –
QModelIndex
当鼠标按键被双击时,发出此信号。通过
index
指定鼠标双击的项目。只有在索引有效时,才会发出此信号。另请参阅
- dragDropMode()#
- 返回类型:
另请参阅
属性
dragDropMode
的获取器。- dragDropOverwriteMode()#
- 返回类型:
bool
属性
dragDropOverwriteMode
的获取器。- dragEnabled(index)#
- 返回类型:
bool
另请参阅
属性
dragEnabled
的获取器。- dropIndicatorPosition()#
- 返回类型:
返回相对于最近物品的放置指示器的位置。
- edit(index)#
- 参数:
index –
QModelIndex
如果对应的
index
可编辑,则开始编辑。请注意,此函数不会改变当前索引。由于当前索引定义了下一个和上一个要编辑的项,用户可能会发现键盘导航不起作用。为了提供一致的导航行为,请在调用该函数之前使用相同的模型索引调用
setCurrentIndex()
。另请参阅
- edit(index, trigger, event)
- 参数:
index –
QModelIndex
trigger –
EditTrigger
event –
QEvent
- 返回类型:
bool
尝试在
index
处编辑项,如果需要,创建一个编辑器,如果视图的State
现在是EditingState
则返回true
,否则返回false
。导致编辑过程的行为由
trigger
描述,并由event
定义。可以通过指定
trigger
为AllEditTriggers
强制编辑。另请参阅
- editTriggers()#
- 返回类型:
EditTrigger
的组合
另请参阅
editTriggersᅟ
属性的获取器。该函数在指定的
editor
被销毁时被调用。另请参阅
- entered(index)#
- 参数:
index –
QModelIndex
当鼠标指针进入由
index
指定的项时,发出此信号。需要启用鼠标跟踪此功能才能正常工作。- executeDelayedItemsLayout()#
执行预定的布局而无需等待事件处理开始。
- hasAutoScroll()#
- 返回类型:
bool
获取属性的 getter autoScroll .
- abstracthorizontalOffset()#
- 返回类型:
int
返回视图的水平偏移量。
在基类中,这是一个纯虚函数。
另请参阅
- horizontalScrollMode()#
- 返回类型:
获取属性的 getter horizontalScrollMode .
- horizontalScrollbarAction(action)#
- 参数:
action – int
- horizontalScrollbarValueChanged(value)#
- 参数:
value – int
- iconSize()#
- 返回类型:
另请参阅
获取属性的 getter iconSize .
属性
iconSize
的通知信号。返回视口坐标
point
的项目的模型索引。在基类中,这是一个纯虚函数。
另请参阅
- indexWidget(index) #
- 参数:
index –
QModelIndex
- 返回类型:
返回给定
index
的项目的控件。另请参阅
- initViewItemOption(option) #
- 参数:
option –
QStyleOptionViewItem
使用视图的调色板、字体、状态、对齐等初始化
option
结构。注意
此方法的实现应检查接收到的结构体的 版本,填充实现熟悉的全部成员,并在返回前将版本成员设置为实施支持的版本。
- 抽象 isIndexHidden(index) #
- 参数:
index –
QModelIndex
- 返回类型:
bool
如果给定
index
指代的项目在视图中隐藏,则返回true
;否则返回false
。隐藏是视图特定功能。例如,在 TableView 中可以标记列为隐藏,或在 TreeView 中隐藏行。
在基类中,这是一个纯虚函数。
- isPersistentEditorOpen(index) #
- 参数:
index –
QModelIndex
- 返回类型:
bool
返回在索引
index
的项处是否打开持久性编辑器。- itemDelegate() #
- 返回类型:
返回由该视图和模型使用的项目委托。这要么是与
setItemDelegate
一起设置的,要么是默认的。另请参阅
- itemDelegate(index)
- 参数:
index –
QModelIndex
- 返回类型:
注意
此函数已弃用。
请使用
itemDelegateForIndex()
代替。它返回用于给定index
的该视图和模型所用的项目代理。- itemDelegateForColumn(column)#
- 参数:
column - int
- 返回类型:
返回用于给定
column
的该视图和模型所用的项目代理。您可以通过调用itemDelegate()
来获取当前索引的代理指针。- itemDelegateForIndex(index)#
- 参数:
index –
QModelIndex
- 返回类型:
返回用于给定
index
的该视图和模型所用的项目代理。- itemDelegateForRow(row)#
- 参数:
row
- 返回类型:
返回用于给定
row
的该视图和模型所用的项目代理,如果没有分配代理则返回None
。您可以通过调用itemDelegate()
来获取当前索引的代理指针。- keyboardSearch(search)#
- 参数:
search – str
将光标移动到与字符串
search
最匹配的项目,并选择该项目。如果没有找到任何项目,则不执行任何操作。在默认实现中,如果
search
为空,或者自上次搜索以来已超过keyboardInputInterval()
定义的时间间隔,则重置搜索。- model()#
- 返回类型:
返回显示该视图的模型。
另请参阅
- abstract moveCursor(cursorAction, modifiers)#
- 参数:
cursorAction –
CursorAction
modifiers –
KeyboardModifier
组合
- 返回类型:
基于给定的
cursorAction
和modifiers
中指定的键盘修饰符,返回指向视图中的下一个对象的 QModelIndex 对象。在基类中,这是一个纯虚函数。
- openPersistentEditor(index)#
- 参数:
index –
QModelIndex
在给定
index
处的项目上打开一个持久性编辑器。如果没有存在编辑器,代理将创建一个新的编辑器。- pressed(index)#
- 参数:
index –
QModelIndex
当鼠标按钮按下时发出此信号。通过
index
指定鼠标按下时的项目。只有当索引有效时才会发出此信号。使用 QGuiApplication::mouseButtons() 函数获取鼠标按钮的状态。
- reset()#
重置视图的内部状态。
警告
此函数将重置打开的编辑器、滚动条位置、选择等。现有更改不会提交。如果您希望在重置视图时保存更改,您可以重写此函数,提交更改,然后调用超类的实现。
- resetHorizontalScrollMode()#
属性
horizontalScrollMode
的重置函数。- resetVerticalScrollMode()#
属性
verticalScrollMode
的重置函数。- rootIndex()#
返回模型根项的模型索引。根项是视图顶级项目的父项。根项可能无效。
另请参阅
- rowsAboutToBeRemoved(parent, start, end)#
- 参数:
parent -
QModelIndex
start - int
end - int
当行将要被删除时调用此槽。要删除的行是从
start
到end
(包含)的范围在给定parent
下的行。另请参阅
- rowsInserted(parent, start, end)#
- 参数:
parent -
QModelIndex
start - int
end - int
当行被插入时调用此槽。新行是从
start
到end
(包含)的范围在给定parent
下的行。基类实现会在模型上调用 fetchMore() 来检查更多数据。- scheduleDelayedItemsLayout()#
调度在事件处理开始时执行视图中的项布局。
即使多次调用scheduleDelayedItemsLayout(),事件处理之前,视图也只会布局一次。
- scrollDirtyRegion(dx, dy)#
- 参数:
dx – int
dy – int
通过将脏区移动到相反方向,将视图准备为以 (
dx
, ``dy``) 像素滚动。只有在你实现的视图子类中实现滚动视口时,才需要调用此函数。如果你在
scrollContentsBy()
的QAbstractItemView
子类中实现,请在调用视口上的scroll()
之前调用此函数。或者,直接调用update()
。- abstract scrollTo(index[, hint=QAbstractItemView.ScrollHint.EnsureVisible])#
- 参数:
index –
QModelIndex
hint –
ScrollHint
如果需要,滚动视图以确保
index
的项目可见。视图将尝试根据给定的hint
来定位项目。在基类中,这是一个纯虚函数。
- scrollToBottom()#
滚动视图到底部。
另请参阅
- scrollToTop()#
滚动视图到顶部。
- selectAll()#
选择视图中所有项。此函数在选择时将使用视图上设置的选区行为。
- selectedIndexes()#
- 返回类型:
QModelIndex 列表
此便捷函数返回视图中所有选中项和非隐藏项的索引列表。列表不包含重复项,并且未排序。
另请参阅
- selectionBehavior()#
- 返回类型:
属性
selectionBehaviorᅟ
的获取器。- selectionChanged(selected, deselected)#
- 参数:
selected –
QItemSelection
deselected –
QItemSelection
当选择更改时调用此槽。之前的选区(可能为空)通过
deselected
指定,新的选区通过selected
指定。另请参阅
- selectionCommand(index[, event=None])#
- 参数:
index –
QModelIndex
event –
QEvent
- 返回类型:
SelectionFlag 组合
返回用于更新指定
index
的选区模型时要使用的 SelectionFlag。结果取决于当前的selectionMode()
以及用户输入事件event
(可以是None
)。重写此函数以定义自己的选择行为。
另请参阅
- selectionMode()#
- 返回类型:
另请参阅
属性
selectionMode
的获取器。- selectionModel()#
- 返回类型:
返回当前选择模型。
- setAlternatingRowColors(enable)#
- 参数:
enable – bool
属性
alternatingRowColors
的设置器。- setAutoScroll(enable)#
- 参数:
enable – bool
另请参阅
属性
autoScroll
的设置器。- setAutoScrollMargin(margin)#
- 参数:
margin – int
另请参阅
属性
autoScrollMargin
的设置器。- setCurrentIndex(index)#
- 参数:
index –
QModelIndex
将当前项设置为索引为
index
的项。除非当前选择模式是
NoSelection
,否则该项也会被选中。注意,此函数还会更新用户执行任何新选择时的起始位置。要将项设置为当前项而不选中它,请调用
selectionModel()->setCurrentIndex(index, QItemSelectionModel::NoUpdate);
- setDefaultDropAction(dropAction)#
- 参数:
dropAction –
DropAction
另请参阅
属性
defaultDropAction
的设置器。将给定的
region
标记为脏并计划更新。如果您正在实现自己的视图子类,则需要调用此函数。- setDragDropMode(behavior)#
- 参数:
behavior –
DragDropMode
另请参阅
属性
dragDropMode
的设置器。- setDragDropOverwriteMode(overwrite)#
- 参数:
overwrite – bool
属性
dragDropOverwriteMode
的设置器。- setDragEnabled(enable)#
- 参数:
enable – bool
另请参阅
属性
dragEnabled
的设置器。- setDropIndicatorShown(enable)#
- 参数:
enable – bool
属性
showDropIndicator
的设置器。- setEditTriggers(triggers)#
- 参数:
triggers –
EditTrigger
的组合
另请参阅
属性
editTriggers
的设置器。- setHorizontalScrollMode(mode)#
- 参数:
模式 –
ScrollMode
属性
horizontalScrollModeᅟ
的设置器。属性
iconSizeᅟ
的设置器。- setIndexWidget(index, widget)#
- 参数:
index –
QModelIndex
小部件 –
QWidget
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
设置在给定
index
的项目上指定的widget
,将小部件的所有权传递给视口。如果
index
无效(例如,如果您传递根索引),此函数将不执行任何操作。给定
widget
的autoFillBackground
属性必须设置为 true,否则小部件的背景将透明,显示模型数据和给定index
的项目。如果用索引小部件 A 替换索引小部件 B,则索引小部件 A 将被删除。例如,在下面的代码片段中,
QLineEdit
对象将被删除。setIndexWidget(index, QLineEdit()) ... setIndexWidget(index, QTextEdit())
此功能仅应用于显示与数据项目的可见区域相对应的静态内容。如果您想显示自定义动态内容或实现自定义编辑器小部件,请改用
QStyledItemDelegate
。另请参阅
- setItemDelegate(delegate)#
- 参数:
为此视图及其模型设置项目委托为
delegate
。如果您想完全控制项目的编辑和显示,这将很有用。将删除现有委托,但不会删除它。
QAbstractItemView
不拥有delegate
。警告
不要在视图中共享同一个代理实例。这样做可能导致不正确或不直观的编辑行为,因为每个连接到给定代理的视图可能都会接收到
closeEditor()
信号,并尝试访问、修改或关闭已经关闭的编辑器。另请参阅
- setItemDelegateForColumn(column, delegate)#
- 参数:
column - int
为给定视图和模型设置用于给定
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
为给定视图和模型设置用于给定
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)#
- 参数:
index –
QModelIndex
将根项设置为给定
index
的项。另请参阅
- abstract setSelection(rect, command)#
- 参数:
rect -
QRect
command -
SelectionFlag
的组合
将选择标志
flags
应用到矩形内的项或与之接触的项上。在实现自己的 itemView 时,setSelection 应该调用
selectionModel()
-> select(selection, flags),其中 selection 或者为空的 QModelIndex,或者是一个 QItemSelection,它包含了rect
中包含的所有项。- setSelectionBehavior(behavior)#
- 参数:
behavior –
SelectionBehavior
另请参阅
设置
selectionBehavior
属性。- setSelectionMode(mode)#
- 参数:
mode –
SelectionMode
另请参阅
设置
selectionMode
属性。- setSelectionModel(selectionModel)#
- 参数:
selectionModel –
QItemSelectionModel
将当前选择模型设置为提供的
selectionModel
。注意,如果在调用此函数之后调用
setModel()
,则提供的selectionModel
将被视图创建的模型替换。注意
如果不再需要旧的模型选择器(例如,它没有被其他视图使用),则应用程序应删除它;也就是说,当其父对象被删除时,这将自动发生。然而,如果没有父对象,或者父对象是长生命周期对象,则可能最好调用其 deleteLater() 函数来显式删除它。
将项目视图的状态设置为提供的
state
。另请参阅
- 参数:
enable – bool
另请参阅
设置
tabKeyNavigation
属性的值。- setTextElideMode(mode)#
- 参数:
mode –
Qt.TextElideMode
另请参阅
设置
textElideMode
属性的值。- setVerticalScrollMode(mode)#
- 参数:
模式 –
ScrollMode
另请参阅
设置
verticalScrollMode
属性的值。- showDropIndicator()#
- 返回类型:
bool
获取
showDropIndicator
属性的值。- sizeHintForColumn(column)#
- 参数:
column - int
- 返回类型:
int
返回指定
column
的宽度大小提示或如果没有模型则返回-1。此函数在具有水平表头的视图中使用,根据指定
column
的内容找到表头部分的大小提示。另请参阅
- sizeHintForIndex(index)#
- 参数:
index –
QModelIndex
- 返回类型:
返回指定
index
的项的大小提示或对于无效索引返回无效大小。- sizeHintForRow(row)#
- 参数:
row
- 返回类型:
int
返回指定
row
的高度大小提示或如果没有模型则返回-1。返回的高度是通过对给定
row
的项的大小提示进行计算的,即返回值是所有项中的最大高度。请注意,为了控制行的高度,您必须重写sizeHint()
函数。此函数用于具有垂直表头的视图中,根据给定
row
的内容找到表头部分的尺寸提示。另请参阅
- startAutoScroll()#
- startDrag(supportedActions)#
- 参数:
supportedActions –
DropAction
的组合
通过调用
supportedActions
的 drag->exec() 来启动拖动。返回项视图的状态。
另请参阅
- stopAutoScroll()#
- tabKeyNavigation()#
- 返回类型:
bool
属性
tabKeyNavigationᅟ
的获取器。- textElideMode()#
- 返回类型:
另请参阅
属性
textElideModeᅟ
的获取器。- update(index)#
- 参数:
index –
QModelIndex
更新给定
index
所占区域。- updateEditorData()#
- updateEditorGeometries()#
- updateGeometries()#
更新视图子小部件的几何形状。
- abstract verticalOffset()#
- 返回类型:
int
返回视图的垂直偏移量。
在基类中,这是一个纯虚函数。
另请参阅
- verticalScrollMode()#
- 返回类型:
属性
verticalScrollModeᅟ
的获取器。- verticalScrollbarAction(action)#
- 参数:
action – int
- verticalScrollbarValueChanged(value)#
- 参数:
value – int
- viewportEntered()#
当鼠标光标进入视口时发出此信号。启用鼠标跟踪功能才能使用此功能。
另请参阅
- abstract visualRect(index)#
- 参数:
index –
QModelIndex
- 返回类型:
返回索引为
index
的项目在视口内占用的矩形。如果您的项目显示在几个区域中,则 visualRect 应返回包含索引的主区域,而不是索引可能包含、触摸或引起绘制的完整区域。
在基类中,这是一个纯虚函数。
- abstract visualRegionForSelection(selection)#
- 参数:
选择 –
QItemSelection
- 返回类型:
返回给定选择的项在视口中的区域。
在基类中,这是一个纯虚函数。