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