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. 在芬兰和其他国家和地区注册的商标。所有其他商标均为各自所有者的财产。