QAbstractItemView 类
QAbstractItemView 类提供了 item 视图基本功能。 更多信息...
| 头文件 | #include <QAbstractItemView> | 
| CMake | find_package(Qt6 REQUIRED COMPONENTS Widgets) target_link_libraries(mytarget PRIVATE Qt6::Widgets) | 
| qmake | QT += widgets | 
| 继承自 | QAbstractScrollArea | 
| 由以下类继承 | 
公共类型
| 枚举 | DragDropMode { NoDragDrop, DragOnly, DropOnly, DragDrop, InternalMove } | 
| 枚举 | EditTrigger { NoEditTriggers, CurrentChanged, DoubleClicked, SelectedClicked, EditKeyPressed, …, AllEditTriggers } | 
| 标志 | EditTriggers | 
| 枚举 | ScrollHint { EnsureVisible, PositionAtTop, PositionAtBottom, PositionAtCenter } | 
| 枚举 | ScrollMode { ScrollPerItem, ScrollPerPixel } | 
| 枚举 | SelectionBehavior { SelectItems, SelectRows, SelectColumns } | 
| 枚举 | 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 | 
| (since 6.0)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 行为) | 
| void | setSelectionMode(QAbstractItemView::SelectionMode 模式) | 
| virtual void | setSelectionModel(QItemSelectionModel *selectionModel) | 
| void | setTabKeyNavigation(bool 启用) | 
| void | setTextElideMode(Qt::TextElideMode 模式) | 
| void | setVerticalScrollMode(QAbstractItemView::ScrollMode 模式) | 
| bool | showDropIndicator() const | 
| 虚 int | sizeHintForColumn(int 列) const | 
| QSize | sizeHintForIndex(const QModelIndex &索引) const | 
| 虚 int | sizeHintForRow(int 行) const | 
| bool | tabKeyNavigation() const | 
| Qt::TextElideMode | textElideMode() const | 
| QAbstractItemView::ScrollMode | verticalScrollMode() const | 
| 虚 QRect | visualRect(const QModelIndex &索引) const = 0 | 
重 implementing Public Functions
| 虚 QVariant | inputMethodQuery(Qt::InputMethodQuery 查询) const override | 
Public Slots
| void | clearSelection() | 
| void | edit(const QModelIndex &索引) | 
| virtual void | reset() | 
| void | scrollToBottom() | 
| void | scrollToTop() | 
| virtual void | selectAll() | 
| void | setCurrentIndex(const QModelIndex &索引) | 
| virtual void | setRootIndex(const QModelIndex &索引) | 
| void | update(const QModelIndex &索引) | 
Signals
| void | activated(const QModelIndex &索引) | 
| void | clicked(const QModelIndex &索引) | 
| void | doubleClicked(const QModelIndex &索引) | 
| void | entered(const QModelIndex &索引) | 
| void | iconSizeChanged(const QSize &size) | 
| void | pressed(const QModelIndex &索引) | 
| void | viewportEntered() | 
Protected Types
| 枚举 | CursorAction { MoveUp, MoveDown, MoveLeft, MoveRight, MoveHome, …, MovePrevious } | 
| 枚举 | DropIndicatorPosition { OnItem, AboveItem, BelowItem, OnViewport } | 
| 枚举 | State { NoState, DraggingState, DragSelectingState, EditingState, ExpandingState, …, AnimatingState } | 
Protected Functions
| QPoint | dirtyRegionOffset() const | 
| QAbstractItemView::DropIndicatorPosition | dropIndicatorPosition() const | 
| 虚 bool | edit(const QModelIndex &索引, QAbstractItemView::EditTrigger trigger, QEvent *event) | 
| void | executeDelayedItemsLayout() | 
| 虚 int | horizontalOffset() const = 0 | 
| (since 6.0)虚 void | initViewItemOption(QStyleOptionViewItem *option) const | 
| 虚 bool | isIndexHidden(const QModelIndex &索引) const = 0 | 
| virtual QModelIndex | moveCursor(QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modifiers) = 0 | 
| void | 延迟调度项布局() | 
| 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 ®ion) | 
| 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 | 
| 虚 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 | 
| 虚 bool | event(QEvent *event) override | 
| 虚 bool | eventFilter(QObject *object, QEvent *event) override | 
| virtual void | focusInEvent(QFocusEvent *event) override | 
| 虚 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 | 
| 虚 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 ¤t, 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+空格 | 切换当前项的选中状态。 | 
| 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 ()。此类提供了一个默认的选择模型以配合使用(《a href="qabstractitemview.html#selectionModel" translate="no">selectionModel()),但可以通过使用不完全相同 setSelectionModel () 与 QItemSelectionModel 的实例替换。
要完全控制项的显示和编辑,可以指定一个通过 setItemDelegate () 的代理。
QAbstractItemView提供许多受保护的函数。其中一些与编辑有关,例如 edit () 和 commitData (),而其他的是键盘和鼠标事件处理程序。
另请参阅:视图类、模型/视图编程以及 QAbstractItemModel。
成员类型文档
枚举 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().
枚举 QAbstractItemView::DragDropMode
描述视图可以执行的拖放事件的各种情况。默认情况下,视图不支持拖放(NoDragDrop)。
| 常量 | 值 | 描述 | 
|---|---|---|
| QAbstractItemView::NoDragDrop | 0 | 不支持拖放。 | 
| QAbstractItemView::DragOnly | 1 | 视图支持其自己的项的拖动。 | 
| QAbstractItemView::DropOnly | 2 | 视图接受放下操作。 | 
| QAbstractItemView::DragDrop | 3 | 视图同时支持拖动和放下。 | 
| QAbstractItemView::InternalMove | 4 | 视图仅接受自身发起的移动(非复制)操作。 | 
注意,所使用的模型需要提供对拖放操作的支持。
另请参阅:setDragDropMode() 和 在项目视图中使用拖放。
枚举 QAbstractItemView::DropIndicatorPosition
此枚举表示放下指示器相对于当前鼠标位置索引的位置
| 常量 | 值 | 描述 | 
|---|---|---|
| QAbstractItemView::OnItem | 0 | 项将落在索引上。 | 
| QAbstractItemView::AboveItem | 1 | 项将放在索引上方。 | 
| QAbstractItemView::BelowItem | 2 | 项将放在索引下方。 | 
| QAbstractItemView::OnViewport | 3 | 项将被放在没有项的视口区域上。视图如何处理在视口中放下的项取决于所使用的底层模型的行为。 | 
枚举 QAbstractItemView::EditTrigger
标志 QAbstractItemView::EditTriggers
此枚举描述了将触发表项编辑的动作。
| 常量 | 值 | 描述 | 
|---|---|---|
| QAbstractItemView::NoEditTriggers | 0 | 不可编辑。 | 
| QAbstractItemView::CurrentChanged | 1 | 当当前项改变时开始编辑。 | 
| QAbstractItemView::DoubleClicked | 2 | 双击项时开始编辑。 | 
| QAbstractItemView::SelectedClicked | 4 | 点击已选中的项时开始编辑。 | 
| QAbstractItemView::EditKeyPressed | 8 | 在项上按下平台编辑键时开始编辑。 | 
| QAbstractItemView::AnyKeyPressed | 16 | 编辑操作在按下任何键时开始。 | 
| QAbstractItemView::AllEditTriggers | 31 | 上述所有操作将启动编辑。 | 
编辑触发器类型是针对 QFlags<EditTrigger> 的宏定义。它存储了编辑触发器值的逻辑或组合。
enum QAbstractItemView::滚动提示
| 常量 | 值 | 描述 | 
|---|---|---|
| QAbstractItemView::EnsureVisible | 0 | 滚动以确保项目可见。 | 
| QAbstractItemView::PositionAtTop | 1 | 滚动以将项目置于视窗顶部。 | 
| QAbstractItemView::PositionAtBottom | 2 | 滚动以将项目置于视窗底部。 | 
| QAbstractItemView::PositionAtCenter | 3 | 滚动以将项目置于视窗中心。 | 
enum QAbstractItemView::滚动模式
描述滚动条应如何行为。当将滚动模式设置为 ScrollPerPixel 时,单步长将自动调整,除非使用 setSingleStep 明确设置。可以通过将单步长设置为-1来恢复自动调整。
| 常量 | 值 | 描述 | 
|---|---|---|
| QAbstractItemView::滚动每个项目 | 0 | 视图将逐个项目滚动内容。 | 
| QAbstractItemView::滚动每个像素 | 1 | 视图将逐个像素滚动内容。 | 
enum QAbstractItemView::选择行为
| 常量 | 值 | 描述 | 
|---|---|---|
| QAbstractItemView::SelectItems | 0 | 选择单个项。 | 
| QAbstractItemView::SelectRows | 1 | 仅选择行。 | 
| QAbstractItemView::SelectColumns | 2 | 仅选择列。 | 
enum QAbstractItemView::选择模式
此枚举表示视图对用户选择如何响应。
| 常量 | 值 | 描述 | 
|---|---|---|
| QAbstractItemView::SingleSelection | 1 | 当用户选择一个项时,任何已选择的项将被取消选择。在单击已选择的项时按 Ctrl 键可以从所选项中取消选择。 | 
| QAbstractItemView::ContiguousSelection | 4 | 当用户按常规方式选择一个项时,选择将被清除并选择新项。但是,如果用户在单击项时按 Shift 键,则从当前项到单击项之间的所有项将被选择或取消选择,具体取决于单击项的状态。 | 
| QAbstractItemView::ExtendedSelection | 3 | 当用户按常规方式选择一个项时,选择将被清除并选择新项。但是,如果用户在单击项时按 Ctrl 键,则单击项将切换,而其他所有项保持不变。如果用户在单击项时按 Shift 键,则从当前项到单击项之间的所有项将被选择或取消选择,具体取决于单击项的状态。通过在项上拖动鼠标可以同时选择多个项。 | 
| QAbstractItemView::MultiSelection | 2 | 当用户按常规方式选择一个项时,该项的选择状态将切换,而其他项保持不变。可以通过在项上拖动鼠标同时切换多个项。 | 
| QAbstractItemView::NoSelection | 0 | 项目不能被选择。 | 
最常用的模式是SingleSelection和ExtendedSelection。
enum QAbstractItemView::状态
描述视图可能处于的不同状态。这通常只有在实现自己的视图时才有用。
| 常量 | 值 | 描述 | 
|---|---|---|
| QAbstractItemView::NoState | 0 | 这是默认状态。 | 
| QAbstractItemView::DraggingState | 1 | 用户正在拖动项。 | 
| QAbstractItemView::DragSelectingState | 2 | 用户正在选择项。 | 
| QAbstractItemView::EditingState | 3 | 用户正在向商品编辑器中的商品进行编辑。 | 
| QAbstractItemView::ExpandingState | 4 | 用户正在打开项分支。 | 
| QAbstractItemView::CollapsingState | 5 | 用户正在关闭项分支。 | 
| QAbstractItemView::AnimatingState | 6 | 项目视图正在进行动画。 | 
属性文档
alternatingRowColors : bool
该属性用于控制是否使用交替颜色绘制背景
如果此属性设置为 true,则项目背景将使用 QPalette::Base 和 QPalette::AlternateBase 进行绘制;否则背景将使用 QPalette::Base 颜色。
默认情况下,此属性为 false。
访问函数
| bool | alternatingRowColors() const | 
| void | setAlternatingRowColors(bool enable) | 
autoScroll : bool
该属性用于控制是否在拖动事件中启用自动滚动
如果此属性设置为 true(默认),当用户拖动到视口边缘 16 个像素内时,QAbstractItemView 将自动滚动视图内容。如果当前项改变,则视图将自动滚动以确保当前项完全可见。
此属性仅在没有接受拖放的情况下起作用。将此属性设置为 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 和 dragDropOverwriteMode
dragDropMode : DragDropMode
该属性用于控制视图将要处理的拖放事件
访问函数
| QAbstractItemView::DragDropMode | dragDropMode() const | 
| void | setDragDropMode(QAbstractItemView::DragDropMode behavior) | 
另请参阅showDropIndicator 和 dragDropOverwriteMode
dragDropOverwriteMode : bool
该属性用于控制视图的拖放行为
如果其值设置为 true,则在放置时选中的数据将覆盖现有项数据,同时移动数据将清除项。如果其值设置为 false,则在放置数据时将选中的数据作为新项插入。当移动数据时,也将移除项。
默认值是 false,正如 QListView 和 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枚举定义的标志的组合,使用逻辑或运算符。如果执行的操作设置为该属性,则视图将仅启动项的编辑。
访问函数
| 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和SelectionBehavior。
selectionMode : SelectionMode
此属性表示视图操作的选择模式
此属性控制用户是否可以选择一个或多个项,在多项选择中,是否选择必须是一系列连续的项。
访问函数
| QAbstractItemView::SelectionMode | selectionMode() const | 
| void | setSelectionMode(QAbstractItemView::SelectionMode mode) | 
另请参阅 SelectionMode和SelectionBehavior。
showDropIndicator : bool
此属性表示在拖拽项和放置时是否显示放置指示器
访问函数
| bool | showDropIndicator() const | 
| void | setDropIndicatorShown(bool enable) | 
另请参阅 dragEnabled、DragDropMode、dragDropOverwriteMode和acceptDrops。
tabKeyNavigation : 布尔值
该属性表示是否启用使用制表符键和退格键进行项目导航。
访问函数
| 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() | 
成员函数文档
[explicit] QAbstractItemView::QAbstractItemView(QWidget *parent = nullptr)
使用指定的父对象构建一个抽象项目视图。
[虚拟nono异常] QAbstractItemView::~QAbstractItemView()
销毁视图。
[信号] void QAbstractItemView::activated(const QModelIndex &index)
当用户激活由索引指定的项目时发出此信号。激活项目的方式依赖于平台;例如,通过单击或双击项目,或者当项目为当前项时按Enter或Return键。
另请参阅clicked(),doubleClicked(),entered()和pressed()。
[槽] void QAbstractItemView::clearSelection()
取消选择所有选定的项目。不会改变当前索引。
另请参阅setSelection()和selectAll()。
[信号] void QAbstractItemView::clicked(const QModelIndex &index)
当左键单击时发出此信号。被鼠标单击的项目由索引指定。仅当索引有效时才发出此信号。
另请参阅activated(),doubleClicked(),entered()和pressed()。
[虚拟保护槽] void QAbstractItemView::closeEditor(QWidget *editor, QAbstractItemDelegate::EndEditHint hint)
关闭指定的 编辑器 并释放它。该 提示 用于指定视图如何响应编辑操作的结束。例如,提示可能会指示视图接下来应该打开哪个项目进行编辑。
另请参阅edit() 和 commitData()。
void QAbstractItemView::closePersistentEditor(const QModelIndex &index)
关闭给定 索引 处的项目持久编辑器。
另请参阅openPersistentEditor() 和 isPersistentEditorOpen()。
[虚拟保护槽] void QAbstractItemView::commitData(QWidget *editor)
将编辑器中的数据提交到模型。
另请参阅closeEditor().
[虚拟保护槽] void QAbstractItemView::currentChanged(const QModelIndex ¤t, const QModelIndex &previous)
当新项目成为当前项时调用此槽。前一个当前项由 previous 索引指定,新项由 current 索引指定。
如果您想了解项目更改情况,请参阅 dataChanged() 信号。
QModelIndex QAbstractItemView::currentIndex() const
返回当前项的模型索引。
另请参阅setCurrentIndex().
[保护] QPoint QAbstractItemView::dirtyRegionOffset() const
返回视图中脏区域的偏移量。
如果您使用 scrollDirtyRegion() 并在 QAbstractItemView 的子类中实现 paintEvent(),则应使用此函数返回的偏移量转换 paint 事件给出的区域。
注意:在 Qt 提供的视图数据更改 () 中,Qt::ToolTipRole 不受尊重。
[保护] QPoint QAbstractItemView::dirtyRegionOffset() const
返回视图中脏区域的偏移量。
如果您使用 scrollDirtyRegion() 并在 QAbstractItemView 的子类中实现 paintEvent(),您应该在给定的区域上使用从该函数返回的偏移量。
另请参阅scrollDirtyRegion() 和 setDirtyRegion().
[信号] void QAbstractItemView::doubleClicked(const QModelIndex &index)
当鼠标双击按钮时,会发出此信号。通过 index 指定鼠标双击的项。只有当索引有效时,才会发出该信号。
[覆盖虚保护] void QAbstractItemView::dragEnterEvent(QDragEnterEvent *event)
重实现: QAbstractScrollArea::dragEnterEvent(QDragEnterEvent *event)
当拖放操作进入部件时,会调用具有给定 event 的此函数。如果拖动到有效的放置位置(例如,在可以接受拖放的项上方),则接受事件;否则忽略。
另请参阅dropEvent() 和 startDrag()。
[覆盖虚保护] void QAbstractItemView::dragLeaveEvent(QDragLeaveEvent *event)
重实现: QAbstractScrollArea::dragLeaveEvent(QDragLeaveEvent *event)
当被拖动的项离开视图时,会调用此函数。该 event 描述了拖放操作的状态。
[覆盖虚保护] void QAbstractItemView::dragMoveEvent(QDragMoveEvent *event)
重实现: QAbstractScrollArea::dragMoveEvent(QDragMoveEvent *event)
在拖放操作期间,随着给定 event 的调用会持续处理。如果,例如,用户将选择拖动到视图的右侧或底部边缘,可以引起视图滚动。在这种情况下,事件将被接受;否则将被忽略。
另请参阅dropEvent() 和 startDrag()。
[覆盖虚保护] void QAbstractItemView::dropEvent(QDropEvent *event)
重实现: QAbstractScrollArea::dropEvent(QDropEvent *event)
当在部件上发生放置事件时,会调用具有给定 event 的此函数。如果模型接受该事件位置,则接受放置事件;否则忽略。
另请参阅startDrag()。
[保护] QAbstractItemView::DropIndicatorPosition QAbstractItemView::dropIndicatorPosition() const
返回放置指示器的位置,与最靠近的项相关。
[槽] void QAbstractItemView::edit(const QModelIndex &index)
如果可编辑,则开始编辑给定 index 对应的项。
注意,此函数不会更改当前索引。因为当前索引定义了下一个和上一个要编辑的项,用户可能发现键盘导航不像预期的那样工作。为了提供一致的导航行为,在使用该函数之前调用 setCurrentIndex() 以具有相同的模型索引。
另请参阅QModelIndex::flags()。
[虚拟受保护] bool QAbstractItemView::edit(const QModelIndex &index, QAbstractItemView::EditTrigger trigger, QEvent *event)
从指定的index开始编辑项目,如果需要则创建编辑器,如果视图的当前状态是编辑状态则返回true;否则返回false。
触发编辑操作的是trigger,相关的事件由event指定。
可以通过指定trigger为QAbstractItemView::AllEditTriggers来强制执行编辑。
另请参阅closeEditor().
[虚拟受保护槽函数] void QAbstractItemView::editorDestroyed(QObject *editor)
当指定的editor被销毁时,将调用此函数。
另请参阅closeEditor().
[信号] void QAbstractItemView::entered(const QModelIndex &index)
当鼠标光标进入由index指定的项目时,将发射此信号。要使用该功能,需要启用鼠标跟踪。
另请参阅viewportEntered()、activated()、clicked()、doubleClicked()和pressed。
[覆盖虚拟受保护] bool QAbstractItemView::event(QEvent *event)
重新实现了:QAbstractScrollArea::event(QEvent *event)。
[覆盖虚拟受保护] bool QAbstractItemView::eventFilter(QObject *object, QEvent *event)
重新实现了:QObject::eventFilter(QObject *watched, QEvent *event)。
[受保护] void QAbstractItemView::executeDelayedItemsLayout()
立即执行预定的布局,而不等待事件处理开始。
另请参阅scheduleDelayedItemsLayout。
[覆盖虚拟受保护] void QAbstractItemView::focusInEvent(QFocusEvent *event)
重新实现了:QWidget::focusInEvent(QFocusEvent *event)。
此函数使用给定的event调用时,部件获得焦点。默认情况下,事件将被忽略。
另请参阅setFocus()和focusOutEvent。
[覆盖虚拟受保护] bool QAbstractItemView::focusNextPrevChild(bool next)
重新实现了:QWidget::focusNextPrevChild(bool next)。
[重写虚保护] void QAbstractItemView::focusOutEvent(QFocusEvent *event)
重实现: QWidget::focusOutEvent(QFocusEvent *event).
该函数在控件失去焦点时由给定的 event 调用。默认情况下,事件被忽略。
另见 clearFocus() 和 focusInEvent().
[纯虚保护] int QAbstractItemView::horizontalOffset() const
返回视图的水平偏移。
在基类中,这是一个纯虚函数。
另见 verticalOffset().
[纯虚] QModelIndex QAbstractItemView::indexAt(const QPoint &point) const
返回视口中指定 point 的项的模型索引。
在基类中,这是一个纯虚函数。
另见 visualRect().
QWidget *QAbstractItemView::indexWidget(const QModelIndex &index) const
返回给定 index 的项的小部件。
另见 setIndexWidget().
[虚保护,自 6.0 版起] void QAbstractItemView::initViewItemOption(QStyleOptionViewItem *option) const
使用视图的调色板、字体、状态、对齐方式等初始化 option 结构。
注意: 此方法的实现应检查接收到的结构的 版本,填充实现所熟悉的所有成员,并在返回之前将版本成员设置为实施支持的版本。
此功能是在 Qt 6.0 版本中引入的。
[重写虚保护] void QAbstractItemView::inputMethodEvent(QInputMethodEvent *event)
重实现: QWidget::inputMethodEvent(QInputMethodEvent *event).
[重写虚] QVariant QAbstractItemView::inputMethodQuery(Qt::InputMethodQuery query) const
重实现: QWidget::inputMethodQuery(Qt::InputMethodQuery query) const.
[纯虚保护] bool QAbstractItemView::isIndexHidden(const QModelIndex &index) const
如果由给定 index 指代的项在视图中隐藏,则返回 true,否则返回 false。
隐藏是视图特定的功能。例如,在 TableView 中,可以标记列或 TreeView 中的行隐藏。
在基类中,这是一个纯虚函数。
bool QAbstractItemView::isPersistentEditorOpen(const QModelIndex &index) const
返回索引 index 处的项目是否打开了持久编辑器。
也见openPersistentEditor() 和 closePersistentEditor。
QAbstractItemDelegate *QAbstractItemView::itemDelegate() const
返回此视图和模型使用的项目代理。这可能是一个通过 setItemDelegate() 设置的代理,或者是默认代理。
QAbstractItemDelegate *QAbstractItemView::itemDelegateForColumn(int column) const
返回用于给定 column 的项目代理。您可以通过调用 itemDelegate() 来获取给定索引的当前代理指针。
也见setItemDelegateForColumn(),itemDelegateForRow() 和 itemDelegate。
[虚函数,自 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。
[重载虚保护函数] void QAbstractItemView::keyPressEvent(QKeyEvent *event)
重实现: QAbstractScrollArea::keyPressEvent(QKeyEvent *e)。
当将按键事件发送到小部件时,会以给定的 event 调用此函数。默认实现处理基本的光标移动,例如向上、向下、向左、向右、Home、PageUp 和 PageDown;如果当前索引有效并且按下了激活键(例如 Enter 或 Return,取决于平台),则发出 activated() 信号。此函数是编辑通过按键触发的位置,例如按下 F2。
也见edit(),moveCursor(),keyboardSearch() 和 tabKeyNavigation。
[虚拟] void QAbstractItemView::keyboardSearch(const QString &search)
移动到并选择与字符串search最匹配的项。如果没有找到项,则不执行任何操作。
在默认实现中,如果search为空或自上次搜索以来已超过QApplication::keyboardInputInterval()的时间间隔,则重置搜索。
QAbstractItemModel *QAbstractItemView::model() const
返回此视图所展示的模型。
另请参阅setModel().
[覆盖虚拟受保护] void QAbstractItemView::mouseDoubleClickEvent(QMouseEvent *event)
重实现: QAbstractScrollArea::mouseDoubleClickEvent(QMouseEvent *e).
当在小部件内部双击鼠标按钮时,以给定的event调用此函数。如果在有效项上双击,则发出doubleClicked()信号并调用项上的edit()。
[覆盖虚拟受保护] void QAbstractItemView::mouseMoveEvent(QMouseEvent *event)
重实现: QAbstractScrollArea::mouseMoveEvent(QMouseEvent *e).
当鼠标移动事件发送到小部件时,以给定的event调用此函数。如果正在执行选择操作,并且新项被移动到选择中,则扩展选择;如果正在执行拖动,则继续拖动。
[覆盖虚拟受保护] void QAbstractItemView::mousePressEvent(QMouseEvent *event)
重实现: QAbstractScrollArea::mousePressEvent(QMouseEvent *e).
当鼠标按钮在小部件内部按下时,以给定的event调用此函数。如果在有效项上按下,则将其变为当前项。该函数会发出pressed()信号。
[覆盖虚拟受保护] void QAbstractItemView::mouseReleaseEvent(QMouseEvent *event)
重实现: QAbstractScrollArea::mouseReleaseEvent(QMouseEvent *e).
当鼠标按钮在小部件上按下并在释放前拖动鼠标到另一个位置时,此函数会调用给定的event。如果正在按下的项,则发出clicked()信号。
[纯虚受保护] QModelIndex QAbstractItemView::moveCursor(QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modifiers)
根据给定的光标操作和由修饰符指定的键盘修饰符,返回一个指向视图中的下一个对象的QModelIndex对象。
在基类中,这是一个纯虚函数。
void QAbstractItemView::openPersistentEditor(const QModelIndex &index)
在指定的索引项上打开持久编辑器。如果不存在编辑器,代理将创建一个新的编辑器。
另请参阅closePersistentEditor()和isPersistentEditorOpen。
[信号] void QAbstractItemView::pressed(const QModelIndex &index)
当鼠标按钮被按下时,会发出此信号。通过索引指定被按下的项目。只有当索引有效时,才会发出此信号。
使用QGuiApplication::mouseButtons()函数获取鼠标按钮的状态。
另请参阅activated、clicked、doubleClicked和entered。
[虚拟槽] void QAbstractItemView::reset()
重置视图的内部状态。
警告:此函数将重置打开的编辑器、滚动条位置、选择等。现有更改将不会提交。如果希望在重置视图时保存更改,可以重写此函数,提交您的更改,然后再调用超类的实现。
[覆盖虚拟保护] void QAbstractItemView::resizeEvent(QResizeEvent *event)
重新实现:QAbstractScrollArea::resizeEvent(QResizeEvent *event)。
当向小部件发送尺寸变更事件时,会以给定的事件调用此函数。
另请参阅QWidget::resizeEvent。
QModelIndex QAbstractItemView::rootIndex() const
返回模型根项的模型索引。根项是视图顶部项的父项。根项可能为无效。
另请参阅setRootIndex。
[虚拟保护槽] void QAbstractItemView::rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end)
当将要删除行时,会调用此槽。从start到end(含)的parent下的删除行。
另请参阅rowsInserted。
[虚拟保护槽] void QAbstractItemView::rowsInserted(const QModelIndex &parent, int start, int end)
当插入行时,会调用此槽。给定parent从start到end(含)的新行。基类实现调用模型上的fetchMore()来检查更多数据。
另请参阅rowsAboutToBeRemoved。
[受保护] void QAbstractItemView::scheduleDelayedItemsLayout()
在事件处理开始时安排对视图中的项进行布局。
即使scheduleDelayedItemsLayout()在处理事件之前被多次调用,视图也只会执行一次布局。
另请参阅executeDelayedItemsLayout()。
[受保护] void QAbstractItemView::scrollDirtyRegion(int dx, int dy)
通过移动脏区域相反的方向来移动(dx,dy)像素来为滚动做准备。只有在你实现视图子类中的滚动视口时,才需要调用此函数。
如果你已在QAbstractItemView子类中实现了scrollContentsBy(),在调用视口上的QWidget::scroll()之前,调用此函数。或者,只需调用update()。
另请参阅scrollContentsBy(), dirtyRegionOffset(),以及setDirtyRegion。
[纯虚函数] void QAbstractItemView::scrollTo(const QModelIndex &index, QAbstractItemView::ScrollHint hint = EnsureVisible)
如果需要,滚动视图以确保index处的项是可见的。视图将尝试根据提供的hint定位项。
在基类中,这是一个纯虚函数。
[槽] void QAbstractItemView::scrollToBottom()
将视图滚动到底部。
另请参阅scrollTo()和scrollToTop。
[槽] void QAbstractItemView::scrollTop()
将视图滚动到顶部。
另请参阅scrollTo()和scrollToBottom。
[虚拟槽] void QAbstractItemView::selectAll()
选择视图中的所有项。在执行选择时,此函数将使用设置在视图上的选择行为。
另请参阅setSelection(), selectedIndexes(),以及clearSelection。
[虚拟保护] QModelIndexList QAbstractItemView::selectedIndexes() const
此便捷功能返回视图中所有已选择和未隐藏的项索引的列表。列表不包含重复项,且未排序。
另请参阅QItemSelectionModel::selectedIndexes。
[虚拟保护槽] void QAbstractItemView::selectionChanged(const QItemSelection &selected, const QItemSelection &deselected)
当选择改变时调用此槽。上一个选择(可能为空),由deselected指定,而新的选择由selected指定。
另请参阅 setSelection().
[virtual protected] QItemSelectionModel::SelectionFlags QAbstractItemView::selectionCommand(const QModelIndex &index, const QEvent *event = nullptr) const
返回应在更新指定index的选中模型时使用的SelectionFlags。结果取决于当前的selectionMode(),以及用户输入事件event,它可以是nullptr。
重写此函数以定义自己的选择行为。
另请参阅 setSelection().
QItemSelectionModel *QAbstractItemView::selectionModel() const
返回当前的选择模型。
另请参阅 setSelectionModel()和selectedIndexes。
[slot] void QAbstractItemView::setCurrentIndex(const QModelIndex &index)
将当前项设置为index处的项。
除非当前选择模式为NoSelection,否则还会选中该项。请注意,此函数还会更新用户执行的新选择的起始位置。
要设置为当前项而不选中它,请调用
selectionModel()->setCurrentIndex(index, QItemSelectionModel::NoUpdate);
另请参阅 currentIndex(),currentChanged(),以及selectionMode。
[protected] void QAbstractItemView::setDirtyRegion(const QRegion ®ion)
将给定的region标记为脏并计划更新。只有在你实现自己的视图子类时才需要调用此函数。
另请参阅 scrollDirtyRegion()和dirtyRegionOffset。
void QAbstractItemView::setIndexWidget(const QModelIndex &index, QWidget *widget)
设置给定index处的项的给定widget,并将窗口的所有权传递给viewport。
如果index无效(例如,如果您传递根索引),则此函数将不执行任何操作。
给定widget的autoFillBackground属性必须设置为true,否则窗口的背景将变为透明,同时显示模型数据和指定的index的项。
如果用索引窗口小部件A替换为索引窗口小部件B,则索引窗口小部件A将被删除。例如,在下面的代码片段中,QLineEdit对象将被删除。
此功能仅应用于显示与数据项相对应的可视区域内的静态内容。如果您想显示自定义动态内容或实现自定义编辑器小部件,请改用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()函数以显式删除它们可能更合适。
视图不拥有模型的所有权,除非它是模型的父亲对象,因为模型可能被多个不同的视图共享。
另请参阅model()、selectionModel()和setSelectionModel()。
[虚拟槽] void QAbstractItemView::setRootIndex(const QModelIndex &index)
将根项设置为给定index处的项。
另请参阅rootIndex()。
[纯虚保护] void QAbstractItemView::setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags flags)
将选区flags应用到矩形内的项或与其接触的项。
在实现自己的itemview时,setSelection应调用selectionModel()>select(select, flags),其中select要么是一个空的QModelIndex,要么是一个包含rect中所有项的QItemSelection。
另请参阅selectionCommand()和selectedIndexes()。
[虚拟] void QAbstractItemView::setSelectionModel(QItemSelectionModel *selectionModel)
将当前选择模型设置为给定的selectionModel。
注意,如果您在这个函数之后调用setModel(),给定的selectionModel将被视图创建的一个模型替换。
注意:如果旧的选择模型不再使用;即,如果不是由其他视图使用,则删除它的责任在于应用程序。当其父对象删除时,这会自动发生。但是,如果它没有父对象,或者父对象是一个长时间存在的对象,那么调用其deleteLater()函数以显式删除它可能更合适。
另请参阅selectionModel()、setModel()和clearSelection()。
[受保护] void QAbstractItemView::setState(QAbstractItemView::State state)
将项视图的状态设置为给定的state。
另请参阅state()。
[虚拟] int QAbstractItemView::sizeHintForColumn(int column) const
返回指定列的宽度大小提示,如果没有模型则返回-1。
此函数用于具有水平表头的视图中,根据给定列的内容找到表头部分的尺寸提示。
另请参阅sizeHintForRow。
QSize QAbstractItemView::sizeHintForIndex(const QModelIndex &index) const
返回指定索引的项的尺寸提示,对于无效索引返回无效尺寸。
另请参阅sizeHintForRow和sizeHintForColumn。
[虚拟保护] int QAbstractItemView::sizeHintForRow(int row) const
返回指定行的高度尺寸提示,如果没有模型则返回-1。
返回的高度是通过计算给定行项的尺寸提示得出来的,即返回值是项中的最大高度。请注意,为了控制行的高度,必须重写QAbstractItemDelegate::sizeHint()函数。
此函数用于具有垂直表头的视图中,根据给定行的内容找到表头部分的尺寸提示。
另请参阅sizeHintForColumn。
[保护] Qt::DropActions QAbstractItemView::startDrag(Qt::DropActions supportedActions)
通过调用drag->exec()使用给定的支持的操作来启动拖拽。
[保护] QAbstractItemView::State QAbstractItemView::state() const
返回项视图的状态。
另请参阅setState。
[重写虚拟保护] void QAbstractItemView::timerEvent(QTimerEvent *event)
重写:QObject::timerEvent(QTimerEvent *event).
此函数在将定时器事件发送到小部件时携带给定的事件被调用。
另请参阅QObject::timerEvent。
[槽函数] void QAbstractItemView::update(const QModelIndex &index)
更新给定索引所占用的区域。
[虚拟保护槽函数] void QAbstractItemView::updateGeometries()
更新视图中子小部件的几何形状。
[纯虚保护] int QAbstractItemView::verticalOffset() const
返回视图的垂直偏移量。
在基类中,这是一个纯虚函数。
另请参阅 horizontalOffset()。
[信号] void QAbstractItemView::viewportEntered()
当鼠标光标进入视口时,会发出此信号。需要启用鼠标跟踪才能使用此功能。
另请参阅 entered()。
[重写 virtual protected] bool QAbstractItemView::viewportEvent(QEvent *event)
重写: QAbstractScrollArea::viewportEvent(QEvent *event)。
此函数用于处理工具提示和“这是什么?”模式,如果给定的事件event是QEvent::ToolTip或QEvent::WhatsThis,则将所有其他事件传递给其基类的viewportEvent()处理器。
如果已识别并处理event,则返回true;否则返回false。
[重写 virtual protected] QSize QAbstractItemView::viewportSizeHint() const
重写: QAbstractScrollArea::viewportSizeHint() const。
[纯虚] QRect QAbstractItemView::visualRect(const QModelIndex &index) const
返回位于index处的项目所占据的视口矩形。
如果您的项目显示在多个区域中,则visualRect应返回包含index的主要区域,而不是index可能覆盖、接触或引起绘制的完整区域。
在基类中,这是一个纯虚函数。
另请参阅 indexAt()和visualRegionForSelection()。
[纯虚 protected] QRegion QAbstractItemView::visualRegionForSelection(const QItemSelection &selection) const
返回给定selection中的项目在视口中的区域。
在基类中,这是一个纯虚函数。
另请参阅 visualRect()和selectedIndexes()。
© 2024 由 Qt 公司 Ltd. 所有权。此处的文档贡献是各自所有者的版权。此文档由自由软件基金会发布,许可条款为GNU自由文档许可协议版本1.3。Qt及其相关标志是Qt公司 Ltd. 在芬兰和其他国家和地区注册的商标。所有其他商标均为各自所有者的财产。