QAbstractItemView 类

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

头: #include <QAbstractItemView>
CMake: find_package(Qt6 COMPONENTS Widgets REQUIRED)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmake: QT += widgets
继承: QAbstractScrollArea
继承者: QColumnView , QHeaderView , QListView , QTableView ,和 QTreeView

公共类型

enum DragDropMode { NoDragDrop, DragOnly, DropOnly, DragDrop, InternalMove }
enum EditTrigger { NoEditTriggers, CurrentChanged, DoubleClicked, SelectedClicked, EditKeyPressed, …, AllEditTriggers }
flags EditTriggers
enum ScrollHint { EnsureVisible, PositionAtTop, PositionAtBottom, PositionAtCenter }
enum ScrollMode { ScrollPerItem, ScrollPerPixel }
enum SelectionBehavior { SelectItems, SelectRows, SelectColumns }
enum SelectionMode { SingleSelection, ContiguousSelection, ExtendedSelection, MultiSelection, NoSelection }

特性

公共函数

  QAbstractItemView (QWidget * parent = nullptr)
virtual ~QAbstractItemView ()
bool alternatingRowColors () const
int autoScrollMargin () const
void closePersistentEditor (const QModelIndex & index )
QModelIndex currentIndex () const
Qt::DropAction defaultDropAction () const
QAbstractItemView::DragDropMode dragDropMode () const
bool dragDropOverwriteMode () const
bool dragEnabled () const
QAbstractItemView::EditTriggers editTriggers () const
bool hasAutoScroll () const
QAbstractItemView::ScrollMode horizontalScrollMode () const
QSize iconSize () const
virtual QModelIndex indexAt (const QPoint & point ) const = 0
QWidget * indexWidget (const QModelIndex & index ) const
bool isPersistentEditorOpen (const QModelIndex & index ) const
QAbstractItemDelegate * itemDelegate () const
QAbstractItemDelegate * itemDelegateForColumn (int column ) const
virtual QAbstractItemDelegate * itemDelegateForIndex (const QModelIndex & index ) const
QAbstractItemDelegate * itemDelegateForRow (int row ) const
virtual void keyboardSearch (const QString & search )
QAbstractItemModel * model () const
void openPersistentEditor (const QModelIndex & index )
void resetHorizontalScrollMode ()
void resetVerticalScrollMode ()
QModelIndex rootIndex () const
virtual void scrollTo (const QModelIndex & index , QAbstractItemView::ScrollHint hint = EnsureVisible) = 0
QAbstractItemView::SelectionBehavior selectionBehavior () const
QAbstractItemView::SelectionMode selectionMode () const
QItemSelectionModel * selectionModel () const
void setAlternatingRowColors (bool enable )
void setAutoScroll (bool enable )
void setAutoScrollMargin (int margin )
void setDefaultDropAction (Qt::DropAction dropAction )
void setDragDropMode (QAbstractItemView::DragDropMode behavior )
void setDragDropOverwriteMode (bool overwrite )
void setDragEnabled (bool enable )
void setDropIndicatorShown (bool enable )
void setEditTriggers (QAbstractItemView::EditTriggers triggers )
void setHorizontalScrollMode (QAbstractItemView::ScrollMode mode )
void setIconSize (const QSize & size )
void setIndexWidget (const QModelIndex & index , QWidget * widget )
void setItemDelegate (QAbstractItemDelegate * delegate )
void setItemDelegateForColumn (int column , QAbstractItemDelegate * delegate )
void setItemDelegateForRow (int row , QAbstractItemDelegate * delegate )
virtual void setModel (QAbstractItemModel * model )
void setSelectionBehavior (QAbstractItemView::SelectionBehavior behavior )
void setSelectionMode (QAbstractItemView::SelectionMode mode )
virtual void setSelectionModel (QItemSelectionModel * selectionModel )
void setTabKeyNavigation (bool enable )
void setTextElideMode (Qt::TextElideMode mode )
void setVerticalScrollMode (QAbstractItemView::ScrollMode mode )
bool showDropIndicator () const
virtual int sizeHintForColumn (int column ) const
QSize sizeHintForIndex (const QModelIndex & index ) const
virtual int sizeHintForRow (int row ) const
bool tabKeyNavigation () const
Qt::TextElideMode textElideMode () const
QAbstractItemView::ScrollMode verticalScrollMode () const
virtual QRect visualRect (const QModelIndex & index ) const = 0

重实现公共函数

virtual QVariant inputMethodQuery (Qt::InputMethodQuery query ) const override

公共槽

void clearSelection ()
void edit (const QModelIndex & index )
virtual void reset ()
void scrollToBottom ()
void scrollToTop ()
virtual void selectAll ()
void setCurrentIndex (const QModelIndex & index )
virtual void setRootIndex (const QModelIndex & index )
void update (const QModelIndex & index )

信号

void activated (const QModelIndex & index )
void clicked (const QModelIndex & index )
void doubleClicked (const QModelIndex & index )
void entered (const QModelIndex & index )
void iconSizeChanged (const QSize & size )
void pressed (const QModelIndex & index )
void viewportEntered ()

保护类型

enum CursorAction { MoveUp, MoveDown, MoveLeft, MoveRight, MoveHome, …, MovePrevious }
enum DropIndicatorPosition { OnItem, AboveItem, BelowItem, OnViewport }
enum State { NoState, DraggingState, DragSelectingState, EditingState, ExpandingState, …, AnimatingState }

保护函数

QPoint dirtyRegionOffset () const
QAbstractItemView::DropIndicatorPosition dropIndicatorPosition () const
virtual bool edit (const QModelIndex & index , QAbstractItemView::EditTrigger trigger , QEvent * event )
void executeDelayedItemsLayout ()
virtual int horizontalOffset () const = 0
virtual void initViewItemOption (QStyleOptionViewItem * option ) const
virtual bool isIndexHidden (const QModelIndex & index ) const = 0
virtual QModelIndex moveCursor (QAbstractItemView::CursorAction cursorAction , Qt::KeyboardModifiers modifiers ) = 0
void scheduleDelayedItemsLayout ()
void scrollDirtyRegion (int dx , int dy )
virtual QModelIndexList selectedIndexes () const
virtual QItemSelectionModel::SelectionFlags selectionCommand (const QModelIndex & index , const QEvent * event = nullptr) const
void setDirtyRegion (const QRegion & region )
virtual void setSelection (const QRect & rect , QItemSelectionModel::SelectionFlags flags ) = 0
void setState (QAbstractItemView::State state )
virtual void startDrag (Qt::DropActions supportedActions )
QAbstractItemView::State state () const
virtual int verticalOffset () const = 0
virtual QRegion visualRegionForSelection (const QItemSelection & selection ) const = 0

重实现保护函数

virtual void dragEnterEvent (QDragEnterEvent * event ) override
virtual void dragLeaveEvent (QDragLeaveEvent * event ) override
virtual void dragMoveEvent (QDragMoveEvent * event ) override
virtual void dropEvent (QDropEvent * event ) override
virtual bool event (QEvent * event ) override
virtual bool eventFilter (QObject * object , QEvent * event ) override
virtual void focusInEvent (QFocusEvent * event ) override
virtual bool focusNextPrevChild (bool next ) override
virtual void focusOutEvent (QFocusEvent * event ) override
virtual void inputMethodEvent (QInputMethodEvent * event ) override
virtual void keyPressEvent (QKeyEvent * event ) override
virtual void mouseDoubleClickEvent (QMouseEvent * event ) override
virtual void mouseMoveEvent (QMouseEvent * event ) override
virtual void mousePressEvent (QMouseEvent * event ) override
virtual void mouseReleaseEvent (QMouseEvent * event ) override
virtual void resizeEvent (QResizeEvent * event ) override
virtual void timerEvent (QTimerEvent * event ) override
virtual bool viewportEvent (QEvent * event ) override
virtual QSize viewportSizeHint () const override

保护槽

virtual void closeEditor (QWidget * editor , QAbstractItemDelegate::EndEditHint hint )
virtual void commitData (QWidget * editor )
virtual void currentChanged (const QModelIndex & current , const QModelIndex & previous )
virtual void dataChanged (const QModelIndex & topLeft , const QModelIndex & bottomRight , const QList<int> & roles = QList<int>())
virtual void editorDestroyed (QObject * editor )
virtual void rowsAboutToBeRemoved (const QModelIndex & parent , int start , int end )
virtual void rowsInserted (const QModelIndex & parent , int start , int end )
virtual void selectionChanged (const QItemSelection & selected , const QItemSelection & deselected )
virtual void updateGeometries ()

详细描述

QAbstractItemView 类是每个标准视图的基类使用 QAbstractItemModel 。QAbstractItemView 是本身不可以被实例化的抽象类。它提供透过信号和槽机制与模型进行互操作的标准接口,使子类能够随着其模型的改变保持最新。此类为键盘和鼠标导航、视口卷动、项编辑及选定提供标准支持。键盘导航实现了此功能:

功能
方向键 改变当前项并选择它。
Ctrl + 方向键 改变当前项但不选择它。
Shift + 方向键 更改当前项并选择它。先前选中项不会被取消选择。
Ctrl+Space 触发当前项的选定。
Tab/Backtab 将当前项更改为下一/上一项。
Home/End 选择模型中的第一/最后项。
Page up/Page down 按视图中的可见行数向上/向下卷动展示行。
Ctrl+A 选择模型中的所有项。

注意,上表假定 选定模式 允许操作。例如,无法选择项,若选定模式为 QAbstractItemView::NoSelection .

QAbstractItemView 类是一种 模型/视图类 且属于 Qt 的 模型/视图框架 .

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

QAbstractItemView 提供常见槽,譬如 edit () 和 setCurrentIndex ()。还提供很多保护槽,包括 dataChanged (), rowsInserted (), rowsAboutToBeRemoved (), selectionChanged (),和 currentChanged ().

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

某些 QAbstractItemView 函数涉及卷动,例如 setHorizontalScrollMode () 和 setVerticalScrollMode ()。要设置滚动条的范围,例如,可以重实现视图的 resizeEvent () 函数:

void MyView::resizeEvent(QResizeEvent *event) {
    horizontalScrollBar()->setRange(0, realWidth - width());
    ...
}
					

注意,范围不更新,直到小部件被展示为止。

几个其它函数涉及选定控制;例如 setSelectionMode (),和 setSelectionBehavior ()。此类为处理提供默认选定模型 ( selectionModel ()),但可以替换这通过使用 setSelectionModel () 采用实例 QItemSelectionModel .

要完全控制项的显示和编辑,可以指定委托采用 setItemDelegate ().

QAbstractItemView 提供了许多保护函数。某些涉及编辑,例如, edit (),和 commitData (),而其它的是键盘和鼠标事件处理程序。

注意: 若继承 QAbstractItemView 并打算更新视口内容,应使用 viewport-> update () 而不是 update() 因为所有描绘操作都发生在视口中。

另请参阅 视图类 , 模型/视图编程 , QAbstractItemModel ,和 图表范例 .

成员类型文档编制

enum QAbstractItemView:: CursorAction

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

常量 描述
QAbstractItemView::MoveUp 0 移至当前项的上方项。
QAbstractItemView::MoveDown 1 移至当前项的下方项。
QAbstractItemView::MoveLeft 2 移至当前项的项左侧。
QAbstractItemView::MoveRight 3 移至当前项的项右侧。
QAbstractItemView::MoveHome 4 移至左上角项。
QAbstractItemView::MoveEnd 5 移至右下角项。
QAbstractItemView::MovePageUp 6 移至当前项上一页。
QAbstractItemView::MovePageDown 7 移至当前项下一页。
QAbstractItemView::MoveNext 8 移至当前项之后项。
QAbstractItemView::MovePrevious 9 移至当前项之前项。

另请参阅 moveCursor ().

enum QAbstractItemView:: DragDropMode

描述视图可以行动的各种拖放事件。默认情况下,视图不支持拖拽或掉落 ( NoDragDrop ).

常量 描述
QAbstractItemView::NoDragDrop 0 不支持拖拽或掉落。
QAbstractItemView::DragOnly 1 视图支持拖拽自己的项
QAbstractItemView::DropOnly 2 视图接受掉落
QAbstractItemView::DragDrop 3 视图支持拖拽和掉落两者
QAbstractItemView::InternalMove 4 视图接受移动 ( 非拷贝 ) 操作仅来自自身。

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

另请参阅 setDragDropMode () 和 将拖放用于项视图 .

enum QAbstractItemView:: DropIndicatorPosition

此枚举指示掉落指示器相对当前鼠标位置的索引位置:

常量 描述
QAbstractItemView::OnItem 0 项将掉落在索引处。
QAbstractItemView::AboveItem 1 项将掉落在索引上方。
QAbstractItemView::BelowItem 2 项将掉落在索引下方。
QAbstractItemView::OnViewport 3 项将掉落在没有项的视口区域。各视图处理视口掉落项的方式,从属正使用的底层模型行为。

enum QAbstractItemView:: EditTrigger
flags QAbstractItemView:: EditTriggers

此枚举描述初启项将编辑的动作。

常量 描述
QAbstractItemView::NoEditTriggers 0 没有编辑可能。
QAbstractItemView::CurrentChanged 1 开始编辑每当当前项改变时。
QAbstractItemView::DoubleClicked 2 开始编辑当双击项时。
QAbstractItemView::SelectedClicked 4 开始编辑当点击已选中项时。
QAbstractItemView::EditKeyPressed 8 开始编辑当在项上按下平台编辑键时。
QAbstractItemView::AnyKeyPressed 16 开始编辑当在项上按下任意键时。
QAbstractItemView::AllEditTriggers 31 开始编辑对于上述所有动作。

EditTriggers 类型是 typedef 对于 QFlags <EditTrigger>。它存储 EditTrigger 值的 OR 组合。

enum QAbstractItemView:: ScrollHint

常量 描述
QAbstractItemView::EnsureVisible 0 卷动以确保项可见。
QAbstractItemView::PositionAtTop 1 卷动以将项放置在视口顶部。
QAbstractItemView::PositionAtBottom 2 卷动以定位到视口底部项。
QAbstractItemView::PositionAtCenter 3 卷动以定位到视口中心项。

enum QAbstractItemView:: ScrollMode

描述滚动条的行为应如何。当把卷动模式设为 ScrollPerPixel 时,将自动调节单步大小,除非它被明确设置使用 setSingleStep() 。可以通过将单步大小设为 -1 以还原自动调节。

常量 描述
QAbstractItemView::ScrollPerItem 0 视图每次卷动内容一项。
QAbstractItemView::ScrollPerPixel 1 视图每次卷动内容一像素。

enum QAbstractItemView:: SelectionBehavior

常量 描述
QAbstractItemView::SelectItems 0 选择单个项。
QAbstractItemView::SelectRows 1 仅选择行。
QAbstractItemView::SelectColumns 2 仅选择列。

enum QAbstractItemView:: SelectionMode

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

常量 描述
QAbstractItemView::SingleSelection 1 当用户选择项时,任何已选中项变为未选中。用户通过按下 Ctrl 键取消对选中项的选择是可能的,当点击选中项时。
QAbstractItemView::ContiguousSelection 4 当用户以通常方式选择项时,清零选定并选中新项。不管怎样,若用户按下 Shift 键点击项,选中 (或取消选中) 当前项和点击项之间的所有项,从属点击项状态。
QAbstractItemView::ExtendedSelection 3 当用户以通常方式选择项时,清零选定并选中新项。不管怎样,若用户按下 Ctrl 键点击项时,触发点击项,而所有其它项保持原样。若用户按下 Shift 键点击项,选中 (或取消选中) 当前项和点击项之间的所有项,从属点击项状态。可以通过拖拽鼠标到多个项之上来选择它们。
QAbstractItemView::MultiSelection 2 当用户以通常方式选择项时,会触发这些项的选定状态,而其它项单独保持。可以通过拖拽鼠标到多个项之上来触发它们。
QAbstractItemView::NoSelection 0 无法选择项。

最常用模式为 SingleSelection 和 ExtendedSelection。

enum QAbstractItemView:: State

描述视图可以处于的不同状态。通常,这只对重实现自己的视图感兴趣。

常量 描述
QAbstractItemView::NoState 0 这是默认状态。
QAbstractItemView::DraggingState 1 用户正在拖拽项。
QAbstractItemView::DragSelectingState 2 用户正在选择项。
QAbstractItemView::EditingState 3 用户正在 Widget 编辑器中编辑项。
QAbstractItemView::ExpandingState 4 用户正在打开项分支。
QAbstractItemView::CollapsingState 5 用户正在关闭项分支。
QAbstractItemView::AnimatingState 6 项视图正在履行动画。

特性文档编制

alternatingRowColors : bool

此特性保持是否使用交替颜色绘制背景

若此特性为 true ,将绘制项背景使用 QPalette::Base and QPalette::AlternateBase ;否则将绘制项背景使用 QPalette::Base 颜色。

默认情况下,此特性为 false .

访问函数:

bool alternatingRowColors () const
void setAlternatingRowColors (bool enable )

autoScroll : bool

此特性保持是否在拖拽移动事件中启用自动卷动

若此特性被设为 true (默认), QAbstractItemView 自动卷动视图内容,若用户在视口边缘 16 像素内拖拽。若当前项改变,那么视图将自动滚动以确保当前项完全可见。

此特性才工作,若视口接受掉落。通过将此特性设为 false 以关闭自动卷动。

访问函数:

bool hasAutoScroll () const
void setAutoScroll (bool enable )

autoScrollMargin : int

此特性保持区域的大小当触发自动卷动时

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

访问函数:

int autoScrollMargin () const
void setAutoScrollMargin (int margin )

defaultDropAction : Qt::DropAction

此特性保持将默认用于 QAbstractItemView::drag() 的掉落动作

若特性未设置,掉落动作为 CopyAction 当支持的动作支持 CopyAction 时。

访问函数:

Qt::DropAction defaultDropAction () const
void setDefaultDropAction (Qt::DropAction dropAction )

另请参阅 showDropIndicator and dragDropOverwriteMode .

dragDropMode : DragDropMode

此特性保持视图将进行拖放事件行动

访问函数:

QAbstractItemView::DragDropMode dragDropMode () const
void setDragDropMode (QAbstractItemView::DragDropMode behavior )

另请参阅 showDropIndicator and dragDropOverwriteMode .

dragDropOverwriteMode : bool

此特性保持视图的拖放行为

若其值为 true ,选中数据将覆写现有项数据当掉落时,而移动数据时将清除项。若其值为 false ,选中数据将插入作为新项当数据掉落时。当数据移动时,项也被移除。

默认值为 false ,作为在 QListView and QTreeView 子类。在 QTableView 子类,另一方面,特性已被设为 true .

注意:这并非旨在阻止项覆写。模型的 flags() 实现应做到这点,通过不返回 Qt::ItemIsDropEnabled .

访问函数:

bool dragDropOverwriteMode () const
void setDragDropOverwriteMode (bool overwrite )

另请参阅 dragDropMode .

dragEnabled : bool

此特性保持视图是否支持拖拽其自己的项

访问函数:

bool dragEnabled () const
void setDragEnabled (bool enable )

另请参阅 showDropIndicator , DragDropMode , dragDropOverwriteMode ,和 acceptDrops .

editTriggers : EditTriggers

此特性保持动作将初启项编辑

此特性选定的标志定义通过 EditTrigger ,使用 OR 运算符组合。视图才初始项的编辑,若此特性有设置履行动作。

访问函数:

QAbstractItemView::EditTriggers editTriggers () const
void setEditTriggers (QAbstractItemView::EditTriggers triggers )

horizontalScrollMode : ScrollMode

视图如何在水平方向卷动其内容

此特性控制视图如何水平卷动其内容。卷动可以按像素或按项进行。它的默认值来自样式凭借 QStyle::SH_ItemView_ScrollMode 样式提示。

访问函数:

QAbstractItemView::ScrollMode horizontalScrollMode () const
void setHorizontalScrollMode (QAbstractItemView::ScrollMode mode )
void resetHorizontalScrollMode ()

iconSize : QSize

此特性保持项图标的大小

设置此特性将导致再次布置项,当视图可见时。

访问函数:

QSize iconSize () const
void setIconSize (const QSize & size )

通知程序信号:

void iconSizeChanged (const QSize & size )

selectionBehavior : SelectionBehavior

此特性保持视图使用的选定行为

此特性保持是否按单项、单行或单列进行选择。

访问函数:

QAbstractItemView::SelectionBehavior selectionBehavior () const
void setSelectionBehavior (QAbstractItemView::SelectionBehavior behavior )

另请参阅 SelectionMode and SelectionBehavior .

selectionMode : SelectionMode

此特性保持在哪种选择模式下操作视图

此特性控制用户是否可以选择一个或多个项,和在多项选定中,选定是否必须为连续范围项。

访问函数:

QAbstractItemView::SelectionMode selectionMode () const
void setSelectionMode (QAbstractItemView::SelectionMode mode )

另请参阅 SelectionMode and SelectionBehavior .

showDropIndicator : bool

此特性保持是否展示掉落指示器,当拖放项时。

访问函数:

bool showDropIndicator () const
void setDropIndicatorShown (bool enable )

另请参阅 dragEnabled , DragDropMode , dragDropOverwriteMode ,和 acceptDrops .

tabKeyNavigation : bool

此特性保持采用 tab 和 backtab 的项导航是否被启用。

访问函数:

bool tabKeyNavigation () const
void setTabKeyNavigation (bool enable )

textElideMode : Qt::TextElideMode

此特性保持 ... 在省略文本中的位置。

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

访问函数:

Qt::TextElideMode textElideMode () const
void setTextElideMode (Qt::TextElideMode mode )

verticalScrollMode : ScrollMode

视图如何在垂直方向卷动其内容

此特性控制视图如何垂直卷动其内容。卷动可以按每像素或每项进行。它的默认值来自样式凭借 QStyle::SH_ItemView_ScrollMode 样式提示。

访问函数:

QAbstractItemView::ScrollMode verticalScrollMode () const
void setVerticalScrollMode (QAbstractItemView::ScrollMode mode )
void resetVerticalScrollMode ()

成员函数文档编制

QAbstractItemView:: QAbstractItemView ( QWidget * parent = nullptr)

构造抽象项视图采用给定 parent .

[signal] void QAbstractItemView:: activated (const QModelIndex & index )

此信号被发射当项指定通过 index 被用户激活。如何激活项从属平台;如:单击 (或双击) 项,或按下 Return/Enter 键在项为当前时。

另请参阅 clicked (), doubleClicked (), entered (),和 pressed ().

[slot] void QAbstractItemView:: clearSelection ()

取消所有选中项的选择。当前索引不会改变。

另请参阅 setSelection () 和 selectAll ().

[signal] void QAbstractItemView:: clicked (const QModelIndex & index )

此信号被发射,当点击鼠标左按钮时。鼠标点击项的指定是通过 index 。信号才发射,当索引有效时。

另请参阅 activated (), doubleClicked (), entered (),和 pressed ().

[virtual protected slot] void QAbstractItemView:: closeEditor ( QWidget * editor , QAbstractItemDelegate::EndEditHint hint )

关闭给定 editor 并释放它。 hint 用于指定视图应如何响应编辑操作的结束。例如,hint (提示) 可能指示应打开下一视图项以供编辑。

另请参阅 edit () 和 commitData ().

[virtual protected slot] void QAbstractItemView:: commitData ( QWidget * editor )

提交数据在 editor 到模型。

另请参阅 closeEditor ().

[virtual protected slot] void QAbstractItemView:: currentChanged (const QModelIndex & current , const QModelIndex & previous )

此槽被调用,当新项变为当前项。上一当前项的指定通过 previous 索引,和新项通过 current 索引。

若想要知道项的有关改变,见 dataChanged () 信号。

[virtual protected slot] void QAbstractItemView:: dataChanged (const QModelIndex & topLeft , const QModelIndex & bottomRight , const QList < int > & roles = QList<int>())

此槽被调用,当项具有给定 roles 在模型中被改变。那些改变项来自 topLeft to bottomRight (包括在内)。若仅仅改变 1 项 topLeft == bottomRight .

roles (已改变) 可以是空容器 (意味着一切都已改变),或是带有已改变角色子集的非空容器。

注意: : Qt::ToolTipRole 不承兑视图中由 Qt 提供的 dataChanged()。

[signal] void QAbstractItemView:: doubleClicked (const QModelIndex & index )

此信号被发射,当双击鼠标按钮时。被鼠标双击项的指定是通过 index 。信号才发射,当索引有效时。

另请参阅 clicked () 和 activated ().

[slot] void QAbstractItemView:: edit (const QModelIndex & index )

开始编辑的项对应给定 index 若它可编辑。

注意,此函数不改变当前索引。由于当前索引定义了要编辑的下一和上一项,因此用户可能发现键盘导航无法如期望般工作。要提供一致导航行为,调用 setCurrentIndex () 在此函数采用相同模型索引之前。

另请参阅 QModelIndex::flags ().

[virtual protected slot] void QAbstractItemView:: editorDestroyed ( QObject * editor )

此函数被调用当给定 editor 已经被销毁。

另请参阅 closeEditor ().

[signal] void QAbstractItemView:: entered (const QModelIndex & index )

此信号被发射,当鼠标光标进入的项指定通过 index 。需要启用鼠标追踪,为使此特征能工作。

另请参阅 viewportEntered (), activated (), clicked (), doubleClicked (),和 pressed ().

[signal] void QAbstractItemView:: pressed (const QModelIndex & index )

此信号被发射,当鼠标按钮被按下。鼠标按下项的指定是通过 index 。信号才发射,当索引有效时。

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

另请参阅 activated (), clicked (), doubleClicked (),和 entered ().

[virtual slot] void QAbstractItemView:: reset ()

重置视图的内部状态。

警告: 此函数将重置已打开的编辑器、滚动条位置、选定、等。现有变化不会被提交。若想要在重置视图时保存更改,可以重实现此函数,提交改变,然后调用超类实现。

[virtual protected slot] void QAbstractItemView:: rowsAboutToBeRemoved (const QModelIndex & parent , int start , int end )

此槽被调用,当行即将被移除时。被删除行是那些在给定 parent from start to end 包括在内。

另请参阅 rowsInserted ().

[virtual protected slot] void QAbstractItemView:: rowsInserted (const QModelIndex & parent , int start , int end )

此槽被调用,当行被插入时。新行是那些在给定 parent from start to end (包括在内)。基类实现调用模型 fetchMore() 以校验是否有更多数据。

另请参阅 rowsAboutToBeRemoved ().

[slot] void QAbstractItemView:: scrollToBottom ()

卷动视图到底部。

另请参阅 scrollTo () 和 scrollToTop ().

[slot] void QAbstractItemView:: scrollToTop ()

卷动视图到顶部。

另请参阅 scrollTo () 和 scrollToBottom ().

[virtual slot] void QAbstractItemView:: selectAll ()

选择视图中的所有项。这个函数将使用视图设置的选定行为,当选择时。

另请参阅 setSelection (), selectedIndexes (),和 clearSelection ().

[virtual protected slot] void QAbstractItemView:: selectionChanged (const QItemSelection & selected , const QItemSelection & deselected )

此槽被调用,当选定改变时。先前选定 (可能为空) 的指定是通过 deselected ,和新选定通过 selected .

另请参阅 setSelection ().

[slot] void QAbstractItemView:: setCurrentIndex (const QModelIndex & index )

将当前项设为是项在 index .

除非当前选定方式为 NoSelection ,项也会被选中。注意:此函数还会更新用户履行任何新选定的起始位置。

要把项设为当前项而不选择它,调用

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

另请参阅 currentIndex (), currentChanged (),和 selectionMode .

[virtual slot] void QAbstractItemView:: setRootIndex (const QModelIndex & index )

将根项设为项按给定 index .

另请参阅 rootIndex ().

[slot] void QAbstractItemView:: update (const QModelIndex & index )

更新占用区域通过给定 index .

[virtual protected slot] void QAbstractItemView:: updateGeometries ()

更新视图子级 Widget 的几何体。

[signal] void QAbstractItemView:: viewportEntered ()

此信号被发射,当鼠标光标进入视口时。鼠标追踪需要启用为使此特征能工作。

另请参阅 entered ().

[虚拟] QAbstractItemView:: ~QAbstractItemView ()

销毁视图。

void QAbstractItemView:: closePersistentEditor (const QModelIndex & index )

关闭用于项的持久编辑器在给定 index .

另请参阅 openPersistentEditor () 和 isPersistentEditorOpen ().

QModelIndex QAbstractItemView:: currentIndex () const

返回当前项的模型索引。

另请参阅 setCurrentIndex ().

[protected] QPoint QAbstractItemView:: dirtyRegionOffset () const

返回视图脏区域的偏移。

若使用 scrollDirtyRegion () 和实现 paintEvent () 在子类化的 QAbstractItemView ,应采用由此函数返回的偏移,翻译由描绘事件给出的区域。

另请参阅 scrollDirtyRegion () 和 setDirtyRegion ().

[override virtual protected] void QAbstractItemView:: dragEnterEvent ( QDragEnterEvent * event )

重实现: QAbstractScrollArea::dragEnterEvent (QDragEnterEvent *event).

此函数被调用采用给定 event 当拖放操作进入 Widget 时。若拖拽到有效掉落位置 (如:在接受掉落的项上),事件被接受;否则,事件被忽略。

另请参阅 dropEvent () 和 startDrag ().

[override virtual protected] void QAbstractItemView:: dragLeaveEvent ( QDragLeaveEvent * event )

重实现: QAbstractScrollArea::dragLeaveEvent (QDragLeaveEvent *event).

此函数被调用,当被拖拽项离开视图时。 event 描述拖放操作的状态。

[override virtual protected] void QAbstractItemView:: dragMoveEvent ( QDragMoveEvent * event )

重实现: QAbstractScrollArea::dragMoveEvent (QDragMoveEvent *event).

会连续调用此函数采用给定 event 当拖放操作在 Widget 上时。它会导致视图卷动, 例如:用户拖拽选定到视图右侧 (或底部边缘)。在此情况下,事件被接受;否则,事件被忽略。

另请参阅 dropEvent () 和 startDrag ().

[override virtual protected] void QAbstractItemView:: dropEvent ( QDropEvent * event )

重实现: QAbstractScrollArea::dropEvent (QDropEvent *event).

此函数被调用采用给定 event 当掉落事件出现在 Widget 上时。若模型接受事件位置,接受掉落事件;否则,忽略。

另请参阅 startDrag ().

[protected] QAbstractItemView::DropIndicatorPosition QAbstractItemView:: dropIndicatorPosition () const

返回掉落指示器相对于最近项的位置。

[virtual protected] bool QAbstractItemView:: edit (const QModelIndex & index , QAbstractItemView::EditTrigger trigger , QEvent * event )

开始编辑的项在 index ,创建编辑器若有必要,并返回 true 若视图的 State 现为 EditingState ;否则返回 false .

导致编辑过程动作的描述是通过 trigger ,且关联事件的指定是通过 event .

可以强制编辑通过指定 trigger QAbstractItemView::AllEditTriggers .

另请参阅 closeEditor ().

[override virtual protected] bool QAbstractItemView:: event ( QEvent * event )

重实现: QAbstractScrollArea::event (QEvent *event).

[override virtual protected] bool QAbstractItemView:: eventFilter ( QObject * object , QEvent * event )

重实现: QObject::eventFilter (QObject *watched, QEvent *event).

[protected] void QAbstractItemView:: executeDelayedItemsLayout ()

执行调度布局,不等待事件处理开始。

另请参阅 scheduleDelayedItemsLayout ().

[override virtual protected] void QAbstractItemView:: focusInEvent ( QFocusEvent * event )

重实现: QWidget::focusInEvent (QFocusEvent *event).

此函数被调用采用给定 event 当 Widget 获得聚焦时。默认情况下,事件被忽略。

另请参阅 setFocus () 和 focusOutEvent ().

[override virtual protected] bool QAbstractItemView:: focusNextPrevChild ( bool next )

重实现: QWidget::focusNextPrevChild (bool next).

[override virtual protected] void QAbstractItemView:: focusOutEvent ( QFocusEvent * event )

重实现: QWidget::focusOutEvent (QFocusEvent *event).

此函数被调用采用给定 event 当 Widget 丢失聚焦时。默认情况下,事件被忽略。

另请参阅 clearFocus () 和 focusInEvent ().

[pure virtual protected] int QAbstractItemView:: horizontalOffset () const

返回视图的水平偏移。

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

另请参阅 verticalOffset ().

[pure virtual] QModelIndex QAbstractItemView:: indexAt (const QPoint & point ) const

返回项模型索引在视口坐标 point .

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

另请参阅 visualRect ().

QWidget *QAbstractItemView:: indexWidget (const QModelIndex & index ) const

返回用于项的 Widget 在给定 index .

另请参阅 setIndexWidget ().

[virtual protected, since 6.0] void QAbstractItemView:: initViewItemOption ( QStyleOptionViewItem * option ) const

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

注意: 此方法的实现应校验 version 对于收到结构,填充实现熟悉的所有成员,及将版本成员设为由实现支持的某个成员 (在返回前)。

该函数在 Qt 6.0 引入。

[override virtual protected] void QAbstractItemView:: inputMethodEvent ( QInputMethodEvent * event )

重实现: QWidget::inputMethodEvent (QInputMethodEvent *event).

[override virtual] QVariant QAbstractItemView:: inputMethodQuery ( Qt::InputMethodQuery query ) const

重实现: QWidget::inputMethodQuery (Qt::InputMethodQuery query) const.

[pure virtual protected] bool QAbstractItemView:: isIndexHidden (const QModelIndex & index ) const

返回 true 若项引用通过给定 index 在视图中被隐藏,否则返回 false .

隐藏特定视图特性。例如在 TableView 可以将列标记为隐藏 (或在 TreeView 中将行标记为隐藏)。

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

[since 5.10] bool QAbstractItemView:: isPersistentEditorOpen (const QModelIndex & index ) const

返回项是否打开持久编辑器在索引 index .

该函数在 Qt 5.10 引入。

另请参阅 openPersistentEditor () 和 closePersistentEditor ().

QAbstractItemDelegate *QAbstractItemView:: itemDelegate () const

返回此视图和模型使用的项委托。这是某个设置采用 setItemDelegate (),或默认的。

另请参阅 setItemDelegate ().

QAbstractItemDelegate *QAbstractItemView:: itemDelegateForColumn ( int column ) const

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

另请参阅 setItemDelegateForColumn (), itemDelegateForRow (),和 itemDelegate ().

[virtual, since 6.0] QAbstractItemDelegate *QAbstractItemView:: itemDelegateForIndex (const QModelIndex & index ) const

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

该函数在 Qt 6.0 引入。

另请参阅 setItemDelegate (), setItemDelegateForRow (),和 setItemDelegateForColumn ().

QAbstractItemDelegate *QAbstractItemView:: itemDelegateForRow ( int row ) const

返回用于此视图的项委托和模型为给定 row ,或 nullptr 若没有赋值委托。可以调用 itemDelegate () 以获取用于给定索引的当前委托指针。

另请参阅 setItemDelegateForRow (), itemDelegateForColumn (),和 setItemDelegate ().

[override virtual protected] void QAbstractItemView:: keyPressEvent ( QKeyEvent * event )

重实现: QAbstractScrollArea::keyPressEvent (QKeyEvent *e).

此函数被调用采用给定 event 当将键事件发送给 Widget 时。默认实现处理基本光标移动 (如:Up、Down、Left、Right、Home、PageUp、PageDown); activated () 信号被发射,若当前索引有效且激活键被按下 (如 Enter 或 Return,从属平台)。此函数是通过按下键初启编辑 (如:若按下 F2)。

另请参阅 edit (), moveCursor (), keyboardSearch (),和 tabKeyNavigation .

[虚拟] void QAbstractItemView:: keyboardSearch (const QString & search )

移动到并选择项最佳匹配字符串 search 。若找不到项,什么都不发生。

按默认实现,搜索被重置若 search 为空,或从最后一次搜索起的时间间隔有超过 QApplication::keyboardInputInterval ().

QAbstractItemModel *QAbstractItemView:: model () const

返回此视图呈现的模型。

另请参阅 setModel ().

[override virtual protected] void QAbstractItemView:: mouseDoubleClickEvent ( QMouseEvent * event )

重实现: QAbstractScrollArea::mouseDoubleClickEvent (QMouseEvent *e).

此函数被调用采用给定 event 当在 Widget 内双击鼠标按钮时。若双击有效项,会发射 doubleClicked () 信号和调用 edit () 在项。

[override virtual protected] void QAbstractItemView:: mouseMoveEvent ( QMouseEvent * event )

重实现: QAbstractScrollArea::mouseMoveEvent (QMouseEvent *e).

此函数被调用采用给定 event 当把鼠标移动事件发送给 Widget 时。若选择正在进行中,且要覆盖选定而移动新项,将扩展;若拖拽正在进行中,继续。

[override virtual protected] void QAbstractItemView:: mousePressEvent ( QMouseEvent * event )

重实现: QAbstractScrollArea::mousePressEvent (QMouseEvent *e).

此函数被调用采用给定 event 当按下鼠标按钮 (且光标在 Widget 内部) 时。若被按下,有效项会变成当前项。此函数发射 pressed () 信号。

[override virtual protected] void QAbstractItemView:: mouseReleaseEvent ( QMouseEvent * event )

重实现: QAbstractScrollArea::mouseReleaseEvent (QMouseEvent *e).

此函数被调用采用给定 event 当鼠标按钮被释放时,在 Widget 鼠标按下事件后。若用户在 Widget 内按下鼠标,然后将鼠标拖拽到另一位置在释放鼠标按钮前,Widget 收到释放事件。此函数会发射 clicked () 信号若项被按下。

[pure virtual protected] QModelIndex QAbstractItemView:: moveCursor ( QAbstractItemView::CursorAction cursorAction , Qt::KeyboardModifiers modifiers )

返回 QModelIndex 对象指向下一视图对象,基于给定 cursorAction 和键盘修饰符指定通过 modifiers .

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

void QAbstractItemView:: openPersistentEditor (const QModelIndex & index )

打开项持久编辑器在给定 index 。若不存在编辑器,委托将创建新的编辑器。

另请参阅 closePersistentEditor () 和 isPersistentEditorOpen ().

[override virtual protected] void QAbstractItemView:: resizeEvent ( QResizeEvent * event )

重实现: QAbstractScrollArea::resizeEvent (QResizeEvent *event).

此函数被调用采用给定 event 当重置大小事件被发送给 Widget 时。

另请参阅 QWidget::resizeEvent ().

QModelIndex QAbstractItemView:: rootIndex () const

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

另请参阅 setRootIndex ().

[protected] void QAbstractItemView:: scheduleDelayedItemsLayout ()

调度要执行的视图项布局,当事件处理开始时。

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

另请参阅 executeDelayedItemsLayout ().

[protected] void QAbstractItemView:: scrollDirtyRegion ( int dx , int dy )

准备卷动视图按 ( dx , dy ) 像素通过沿相反方向移动脏区域。只需调用此函数,若在视图子类中实现卷动视口。

若实现 scrollContentsBy () 在子类化的 QAbstractItemView ,调用此函数先于调用 QWidget::scroll () 在视口。另外,仅仅调用 update ().

另请参阅 scrollContentsBy (), dirtyRegionOffset (),和 setDirtyRegion ().

[pure virtual] void QAbstractItemView:: scrollTo (const QModelIndex & index , QAbstractItemView::ScrollHint hint = EnsureVisible)

卷动视图,若有必要确保项在 index 可见。视图将试着定位项根据给定 hint .

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

[virtual protected] QModelIndexList QAbstractItemView:: selectedIndexes () const

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

另请参阅 QItemSelectionModel::selectedIndexes ().

[virtual protected] QItemSelectionModel::SelectionFlags QAbstractItemView:: selectionCommand (const QModelIndex & index , const QEvent * event = nullptr) const

返回要使用的 SelectionFlags 当更新选定项包括 index 指定。 event 是用户输入事件 (譬如:鼠标或键盘事件)。

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

另请参阅 setSelection ().

QItemSelectionModel *QAbstractItemView:: selectionModel () const

返回当前选定模型。

另请参阅 setSelectionModel () 和 selectedIndexes ().

[protected] void QAbstractItemView:: setDirtyRegion (const QRegion & region )

标记给定 region 为脏并调度它以更新。只需调用此函数,若正在实现自己的视图子类。

另请参阅 scrollDirtyRegion () 和 dirtyRegionOffset ().

void QAbstractItemView:: setIndexWidget (const QModelIndex & index , QWidget * widget )

设置给定 widget 对于项在给定 index ,将 Widget 的所有权传递给视口。

index 无效 (如:若传递根索引),此函数什么都不做。

给定 widget 's autoFillBackground 特性必须被设为 true,否则 Widget 背景将是透明的,展示模型数据和项两者在给定 index .

若以索引小部件 B 替换索引小部件 A,将删除索引小部件 A。例如,在以下代码片段中, QLineEdit 对象将被删除。

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

此函数只应用于在数据项相应可见区域内显示静态内容。若想要显示自定义动态内容 (或实现自定义编辑器 Widget),子类 QStyledItemDelegate 代替。

另请参阅 indexWidget () 和 委托类 .

void QAbstractItemView:: setItemDelegate ( QAbstractItemDelegate * delegate )

将此视图及其模型的项委托设为 delegate 。若想要完整控制项的编辑和显示,这就很有用。

任何现有委托将被移除,但不被删除。 QAbstractItemView 未拥有所有权对于 delegate .

警告: 不应该在视图之间,共享实例化的相同委托。这样做会导致不正确 (或不直观) 编辑行为,由于连接到给定委托的各视图都可以接收 closeEditor() 信号,且试图访问、修改或关闭已关闭的编辑器。

另请参阅 itemDelegate ().

void QAbstractItemView:: setItemDelegateForColumn ( int column , QAbstractItemDelegate * delegate )

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

任何现有列委托对于 column 会被移除,但不删除。 QAbstractItemView 未拥有所有权对于 delegate .

注意: 若委托已赋值给行和列两者,行委托优先且它会管理相交单元格索引。

警告: 不应该在视图之间,共享实例化的相同委托。这样做会导致不正确 (或不直观) 编辑行为,由于连接到给定委托的各视图都可以接收 closeEditor() 信号,且试图访问、修改或关闭已关闭的编辑器。

另请参阅 itemDelegateForColumn (), setItemDelegateForRow (),和 itemDelegate ().

void QAbstractItemView:: setItemDelegateForRow ( int row , QAbstractItemDelegate * delegate )

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

任何现有行委托对于 row 会被移除,但不删除。 QAbstractItemView 未拥有所有权对于 delegate .

注意: 若委托已赋值给行和列两者,行委托 (即:此委托) 优先且它会管理相交单元格索引。

警告: 不应该在视图之间,共享实例化的相同委托。这样做会导致不正确 (或不直观) 编辑行为,由于连接到给定委托的各视图都可以接收 closeEditor() 信号,且试图访问、修改或关闭已关闭的编辑器。

另请参阅 itemDelegateForRow (), setItemDelegateForColumn (),和 itemDelegate ().

[虚拟] void QAbstractItemView:: setModel ( QAbstractItemModel * model )

设置 model 为要呈现视图。

此函数将创建并设置新的选定模型,替换任何先前设置的模型采用 setSelectionModel ()。不管怎样,旧选定模型不会被删除,因为它可以在几个视图之间共享。推荐删除旧选定模型,若不再需要。这的完成是采用以下代码:

QItemSelectionModel *m = view->selectionModel();
view->setModel(new model);
delete m;
					

若旧模型和旧选定模型两者没有父级,或者若它们的父级是长期存活对象,可以首选调用它们的 deleteLater () 函数以明确删除它们。

视图 does not 拥有模型的所有权,除非它是模型的父级对象,因为模型可以在很多不同视图之间共享。

另请参阅 model (), selectionModel (),和 setSelectionModel ().

[pure virtual protected] void QAbstractItemView:: setSelection (const QRect & rect , QItemSelectionModel::SelectionFlags flags )

应用选定 flags 到矩形内项,或触及的通过矩形 rect .

当实现自己的项视图时,setSelection 应调用 selectionModel ()->select(selection, flags) 其中 selection 为空 QModelIndex QItemSelection 其包含的所有项包含在 rect .

另请参阅 selectionCommand () 和 selectedIndexes ().

[虚拟] void QAbstractItemView:: setSelectionModel ( QItemSelectionModel * selectionModel )

将当前选定模型设为给定 selectionModel .

注意,若调用 setModel () 在此函数后,给定 selectionModel 将被视图创建的所替换。

注意: 直到应用程序删除它,若不再需要旧选定模型 (即:若它未用于其它视图)。这会自动发生,当删除其父级对象时。不管怎样,若它没有父级对象 (或父级是长期存活对象),首选调用其 deleteLater () 函数以明确删除它。

另请参阅 selectionModel (), setModel (),和 clearSelection ().

[protected] void QAbstractItemView:: setState ( QAbstractItemView::State state )

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

另请参阅 state ().

[虚拟] int QAbstractItemView:: sizeHintForColumn ( int column ) const

返回宽度大小提示为指定 column 或 -1 若没有模型。

此函数用于具有水平 Header (头) 的视图,以查找 Header (头) 区间的大小提示基于内容为给定 column .

另请参阅 sizeHintForRow ().

QSize QAbstractItemView:: sizeHintForIndex (const QModelIndex & index ) const

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

另请参阅 sizeHintForRow () 和 sizeHintForColumn ().

[虚拟] int QAbstractItemView:: sizeHintForRow ( int row ) const

返回高度大小提示为指定 row 或 -1 若没有模型。

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

此函数用于具有垂直 Header (头) 的视图,基于内容查找 Header (头) 区间的大小提示对于给定 row .

另请参阅 sizeHintForColumn ().

[virtual protected] void QAbstractItemView:: startDrag ( Qt::DropActions supportedActions )

开始拖拽通过调用 drag->exec() 使用给定 supportedActions .

[protected] QAbstractItemView::State QAbstractItemView:: state () const

返回项视图的状态。

另请参阅 setState ().

[override virtual protected] void QAbstractItemView:: timerEvent ( QTimerEvent * event )

重实现: QObject::timerEvent (QTimerEvent *event).

此函数被调用采用给定 event 当计时器事件被发送给 Widget 时。

另请参阅 QObject::timerEvent ().

[pure virtual protected] int QAbstractItemView:: verticalOffset () const

返回视图的垂直偏移。

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

另请参阅 horizontalOffset ().

[override virtual protected] bool QAbstractItemView:: viewportEvent ( QEvent * event )

重实现: QAbstractScrollArea::viewportEvent (QEvent *event).

此函数用于处理工具提示和 What's This? 模式,若给定 event QEvent::ToolTip ,或 QEvent::WhatsThis 。它将所有其它事件传递到其基类 viewportEvent() 处理程序。

返回 true if event 已被识别并处理;否则,返回 false .

[override virtual protected, since 5.2] QSize QAbstractItemView:: viewportSizeHint () const

重实现: QAbstractScrollArea::viewportSizeHint () const.

该函数在 Qt 5.2 引入。

[pure virtual] QRect QAbstractItemView:: visualRect (const QModelIndex & index ) const

返回项所占据的视口矩形为 index .

若项显示在多个区域,那么 visualRect 应返回包含索引的首要区域,而不是索引可能环绕、触摸或导致绘制的完整区域。

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

另请参阅 indexAt () 和 visualRegionForSelection ().

[pure virtual protected] QRegion QAbstractItemView:: visualRegionForSelection (const QItemSelection & selection ) const

返回来自项视口的区域在给定 selection .

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

另请参阅 visualRect () 和 selectedIndexes ().