QListView 类

QListView 类提供了一个对模型的列表或图标视图。 更多...

头文件 #include <QListView>
CMakefind_package(Qt6 REQUIRED COMPONENTS Widgets)
target_link_libraries(mytarget PRIVATE Qt6::Widgets)
qmakeQT += widgets
继承自 QAbstractItemView
派生自

QHelpIndexWidgetQListWidget,以及 QUndoView

公共类型

枚举Flow { 从左到右,从上到下 }
枚举LayoutMode { 单次遍历,批量处理 }
枚举Movement { 静态,自由,吸附 }
枚举ResizeMode { 固定,调整 }
枚举ViewMode { 列表模式,图标模式 }

属性

公共函数

QListView(QWidget *parent = nullptr)
virtual~QListView()
intbatchSize() const
voidclearPropertyFlags()
QListView::Flowflow() const
QSizegridSize() const
boolisRowHidden(int row) const
boolisSelectionRectVisible() const
boolisWrapping() const
Qt::AlignmentitemAlignment() const
QListView::LayoutModelayoutMode() const
intmodelColumn() const
QListView::Movementmovement() const
QListView::ResizeModeresizeMode() const
voidsetBatchSize(int batchSize)
voidsetFlow(QListView::Flow flow)
voidsetGridSize(const QSize &size)
voidsetItemAlignment(Qt::Alignment alignment)
voidsetLayoutMode(QListView::LayoutMode mode)
voidsetModelColumn(int column)
voidsetMovement(QListView::Movement movement)
voidsetResizeMode(QListView::ResizeMode mode)
voidsetRowHidden(int row, bool hide)
voidsetSelectionRectVisible(bool show)
voidsetSpacing(int space)
voidsetUniformItemSizes(bool enable)
voidsetViewMode(QListView::ViewMode mode)
voidsetWordWrap(bool on)
voidsetWrapping(bool enable)
intspacing() const
booluniformItemSizes() const
QListView::ViewModeviewMode() const
boolwordWrap() const

重写的公共函数

virtual QModelIndexindexAt(const QPoint &p) const override
virtual voidscrollTo(const QModelIndex &index, QAbstractItemView::ScrollHint hint = EnsureVisible) override
virtual voidsetRootIndex(const QModelIndex &index) override
virtual QRectvisualRect(const QModelIndex &index) const override

信号

voidindexesMoved(const QModelIndexList &indexes)

受保护的函数

QRectrectForIndex(const QModelIndex &index) const
voidsetPositionForIndex(const QPoint &position, const QModelIndex &index)

重写的受保护函数

virtual voidcurrentChanged(const QModelIndex &current, const QModelIndex &previous) override
virtual voiddataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QList<int> &roles = QList<int>()) override
virtual voiddragLeaveEvent(QDragLeaveEvent *e) override
virtual voiddragMoveEvent(QDragMoveEvent *e) override
virtual voiddropEvent(QDropEvent *event) override
virtual boolevent(QEvent *e) override
virtual inthorizontalOffset() const override
virtual voidinitViewItemOption(QStyleOptionViewItem *option) const override
virtual boolisIndexHidden(const QModelIndex &index) const override
virtual voidmouseMoveEvent(QMouseEvent *e) override
virtual voidmouseReleaseEvent(QMouseEvent *e) override
virtual QModelIndexmoveCursor(QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modifiers) override
virtual voidpaintEvent(QPaintEvent *e) override
virtual voidresizeEvent(QResizeEvent *e) override
virtual voidrowsAboutToBeRemoved(const QModelIndex &parent, int start, int end) override
virtual voidrowsInserted(const QModelIndex &parent, int start, int end) override
virtual voidscrollContentsBy(int dx, int dy) override
virtual QModelIndexListselectedIndexes() const override
virtual voidselectionChanged(const QItemSelection &selected, const QItemSelection &deselected) override
virtual voidsetSelection(const QRect &rect, QItemSelectionModel::SelectionFlags command) override
virtual voidstartDrag(Qt::DropActions supportedActions) override
virtual voidtimerEvent(QTimerEvent *e) override
virtual voidupdateGeometries() override
virtual intverticalOffset() const override
virtual QSizeviewportSizeHint() const override
virtual QRegionvisualRegionForSelection(const QItemSelection &selection) const override
virtual voidwheelEvent(QWheelEvent *e) override

详细描述

A QListView显示存储在模型中的项,可以是简单的非层次列表,或是一组图标。此类用于提供以前由QListBox和QIconView类提供的列表和图标视图,但使用了Qt的模型/视图架构提供的更灵活的方法。

QListView类是模型/视图类之一,也是Qt的模型/视图框架的一部分。

此视图不显示水平和垂直表头;要显示具有水平表头的项目列表,请使用QTreeView以替代。

QListView实现了QAbstractItemView类定义的接口,允许它显示由QAbstractItemModel类派生的模型提供的数据。

列表视图中的项可以使用两种视图模式之一显示:在ListMode中,项以简单列表的形式显示;在IconMode中,列表视图采用图标视图的形式,其中项以类似文件管理器中文件的方式显示图标。默认情况下,列表视图处于ListMode。要更改视图模式,请使用setViewMode()函数,并使用viewMode()确定当前视图模式。

这些视图中的项按列表视图的flow()指定的方向排列。项可以固定在位置,也可以根据视图的movement()状态允许移动。

如果模型中的项不能完全按流的方向排列,则它们可以在视图小部件的边界处换行;这取决于isWrapping。此属性在项以图标视图表示时很有用。

函数resizeMode() 和函数layoutMode() 控制了项目布局的方式和时间。项目间距根据其spacing() 属性进行设置,并且可以存在于一个由 gridSize() 指定的大小的理想网格中。项目的绘制大小取决于其 iconSize() 属性。

性能提升

可以提供有关视图所处理数据的提示,以提高其显示大量项目时的性能。对于旨在显示具有相同大小的项目的视图,可以采用的方法是将 uniformItemSizes 属性设置为 true。

另请参阅视图类QTreeViewQTableViewQListWidget

成员类型文档

枚举 QListView::Flow

常量描述
QListView::LeftToRight0项目从左侧到右侧在该视图中布局。
QListView::TopToBottom1项目从顶部到底部在该视图中布局。

枚举 QListView::LayoutMode

常量描述
QListView::SinglePass0同时布局所有的项目。
QListView::Batched1以大小为 batchSize 的批次进行布局项目。

另请参阅batchSize

枚举 QListView::Movement

常量描述
QListView::Static0用户不能移动项目。
QListView::Free1用户可以自由地移动项目。
QListView::Snap2移动项目时,项目将贴合指定的网格;请参阅 setGridSize().

枚举 QListView::ResizeMode

常量描述
QListView::Fixed0项目仅在视图首次显示时进行布局。
QListView::Adjust1每次调整视图大小时,都会进行布局。

枚举 QListView::ViewMode

常量描述
QListView::ListMode0使用 TopToBottom 流向布局项目,具有小型和静态移动。
QListView::IconMode1使用 LeftToRight 流向布局项目,具有大型和自由移动。

属性文档

batchSize : int

如果 layoutMode 设置为 Batched,则此属性保存每批中排列的项目数。

默认值为 100。

访问函数

intbatchSize() const
voidsetBatchSize(int batchSize)

flow : Flow

此属性保存项目布局应该流的方向。

如果此属性值为LeftToRight,则项目将以从左到右的顺序排列。如果isWrapping属性值为true,布局在到达可视区域的右侧时将自动换行。如果此属性值为TopToBottom,则项目将从可视区域的顶部开始排列,到达底部时将自动换行。

当视图可见时设置此属性将导致项目重新排列。

默认情况下,此属性设置为TopToBottom

访问函数

QListView::Flowflow() const
voidsetFlow(QListView::Flow flow)

另请参阅viewMode

gridSize : QSize

此属性包含布局网格的大小。

此属性包含项目中布局的网格大小。默认情况下,这是一个空的大小,意味着没有网格且布局不在网格上进行。将此属性设置为非空的大小将启动网格布局。(当强制执行网格布局时,将忽略spacing属性。)

当视图可见时设置此属性将导致项目重新排列。

访问函数

QSizegridSize() const
voidsetGridSize(const QSize &size)

另请参阅viewMode

isWrapping : bool

此属性表示项目布局是否应该换行。

此属性表示在可视区域没有更多空间时,布局是否应该换行。布局换行的点取决于flow属性。

当视图可见时设置此属性将导致项目重新排列。

默认情况下,此属性为false

访问函数

boolisWrapping() const
voidsetWrapping(bool enable)

另请参阅viewMode

itemAlignment : Qt::Alignment

此属性表示其单元格中每个项的对齐方式。

仅在对ListMode使用TopToBottom流动和启用了换行时支持。默认对齐方式为0,这意味着项将完全填满其单元格。

访问函数

Qt::AlignmentitemAlignment() const
voidsetItemAlignment(Qt::Alignment alignment)

layoutMode : LayoutMode

决定项目布局是立即发生还是延迟执行。

此属性包含项目的布局模式。当模式为SinglePass(默认)时,项目将一次性排列。当模式为Batched时,项目将以batchSize个批次的项进行排列,在处理事件的同时进行。这使得可以在剩余项目布局的同时即时查看和与可见项目交互。

访问函数

QListView::LayoutModelayoutMode() const
voidsetLayoutMode(QListView::LayoutMode mode)

另请参阅viewMode

modelColumn : int

此属性包含模型中可视的列。

默认情况下,此属性包含0,表示将显示模型中的第一列。

访问函数

intmodelColumn() const
voidsetModelColumn(int column)

运动 : 运动

此属性决定项目是否可以自由移动,是吸附到网格,还是完全不能移动。

此属性决定了用户如何在视图中移动项目。 静态 表示用户不能移动项目。 自由 表示用户可以将项目拖放到视图中的任何位置。 吸附 表示用户可以拖放项目,但只能拖放到一个虚拟网格的指定位置,该网格由 gridSize 属性表示。

当视图可见时设置此属性将导致项目重新排列。

默认情况下,此属性设置为 静态

访问函数

QListView::Movement运动() const
voidsetMovement(QListView::Movement 运动)

另请参阅 gridSizeresizeModeviewMode

resizeMode : 调整模式

此属性确定在调整视图大小后是否重新布局项目。

如果此属性为 调整,则在调整视图大小时将重新布局项目。如果值为 固定,则在调整视图大小时不会重新布局项目。

默认情况下,此属性设置为 固定

访问函数

QListView::ResizeModeresizeMode() const
voidsetResizeMode(QListView::ResizeMode 模式)

另请参阅 movementgridSizeviewMode

selectionRectVisible : 布尔值

是否应显示选择矩形

如果此属性为 true,则选择矩形可见;否则将被隐藏。

注意:只有当选择模式允许选择多个项目时,选择矩形才会可见;即如果选择模式是 QAbstractItemView::SingleSelection,则不会绘制选择矩形。

默认情况下,此属性为false

访问函数

boolisSelectionRectVisible() const
voidsetSelectionRectVisible(bool show)

spacing : 整数

此属性保持布局中项目周围的空白空间。

此属性是在布局中围绕项目填充的空白空间的尺寸。

当视图可见时设置此属性将导致项目重新排列。

默认情况下,此属性包含的值为 0。

访问函数

intspacing() const
voidsetSpacing(int 间隔)

另请参阅viewMode

uniformItemSizes : 布尔值

此属性保持列表视图中所有项目是否具有相同的大小。

如果可以保证视图中的所有项目都具有相同的大小,则应仅将此属性设置为 true。这可以使得视图在性能方面进行一些优化。

默认情况下,此属性为false

访问函数

booluniformItemSizes() const
voidsetUniformItemSizes(bool enable)

viewMode : 视图模式

此属性保持 QListView 的视图模式。

此属性将更改其他未设置的属性以符合已设置的视图模式。已设置的QListView特定属性将不会更改,除非已调用clearPropertyFlags()。

设置视图模式将根据所选移动启用或禁用拖放。对于ListMode,默认移动是Static(禁用拖放);对于IconMode,默认移动是Free(启用拖放)。

访问函数

QListView::ViewModeviewMode() const
voidsetViewMode(QListView::ViewMode mode)

另请参阅 isWrappingspacinggridSizeflowmovementresizeMode

wordWrap : bool

此属性包含项文本换行策略

如果此属性为true,则项文本将在必要的单词断点处换行;否则,根本不进行换行。默认情况下,此属性为false

请注意,即使启用了换行,单元格也不会扩展以容纳文本。如果文本无法显示,它将根据视图的textElideMode打印省略号。

访问函数

boolwordWrap() const
voidsetWordWrap(bool on)

成员函数文档

[显式] QListView::QListView(QWidget *parent = nullptr)

创建一个新的QListView,用于查看一个模型。使用setModel()设置模型。

[虚,无弱异常抛出] QListView::~QListView()

销毁视图。

void QListView::clearPropertyFlags()

清除QListView特定属性标志。参见viewMode

QAbstractItemView继承的属性不受属性标志的影响。具体来说,dragEnabledacceptsDrops是由QListView在调用setMovement()或setViewMode时计算的。

[覆盖虚受保护] void QListView::currentChanged(const QModelIndex &current, const QModelIndex &previous)

重新实现:QAbstractItemView::currentChanged(const QModelIndex &current, const QModelIndex &previous)。

[覆盖虚受保护] void QListView::dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QList<int> &roles = QList<int>())

重新实现:QAbstractItemView::dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QList<int> &roles)。

[覆盖虚保护] void QListView::dragLeaveEvent(QDragLeaveEvent *e)

重新实现: QAbstractItemView::dragLeaveEvent(QDragLeaveEvent *event).

[覆盖虚保护] void QListView::dragMoveEvent(QDragMoveEvent *e)

重新实现: QAbstractItemView::dragMoveEvent(QDragMoveEvent *event).

[覆盖虚保护] void QListView::dropEvent(QDropEvent *event)

重新实现: QAbstractItemView::dropEvent(QDropEvent *event).

[覆盖虚保护] bool QListView::event(QEvent *e)

重新实现: QAbstractItemView::event(QEvent *event).

[覆盖虚保护] int QListView::horizontalOffset() const

重新实现: QAbstractItemView::horizontalOffset() const.

[覆盖虚] QModelIndex QListView::indexAt(const QPoint &p) const

重新实现: QAbstractItemView::indexAt(const QPoint &point) const.

[信号] void QListView::indexesMoved(const QModelIndexList &indexes)

该信号在指定的 indexes 在视图中移动时发出。

[覆盖虚保护] void QListView::initViewItemOption(QStyleOptionViewItem *option) const

重新实现: QAbstractItemView::initViewItemOption(QStyleOptionViewItem *option) const.

[覆盖虚保护] bool QListView::isIndexHidden(const QModelIndex &index) const

重新实现: QAbstractItemView::isIndexHidden(const QModelIndex &index) const.

bool QListView::isRowHidden(int row) const

如果指定的 row 被隐藏,则返回 true;否则返回 false

[覆盖虚保护] void QListView::mouseMoveEvent(QMouseEvent *e)

重新实现: QAbstractItemView::mouseMoveEvent(QMouseEvent *event).

[重写虚拟受保护] void QListView::mouseReleaseEvent(QMouseEvent *e)

重实现: QAbstractItemView::mouseReleaseEvent(QMouseEvent *event).

[重写虚拟受保护] QModelIndex QListView::moveCursor(QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modifiers)

重实现: QAbstractItemView::moveCursor(QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modifiers).

[重写虚拟受保护] void QListView::paintEvent(QPaintEvent *e)

重实现: QAbstractScrollArea::paintEvent(QPaintEvent *event).

[受保护] QRect QListView::rectForIndex(const QModelIndex &index) const

返回模型中位置在 index 处的项的矩形。矩形位于内容坐标。

另请参阅 visualRect().

[重写虚拟受保护] void QListView::resizeEvent(QResizeEvent *e)

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

[重写虚拟受保护] void QListView::rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end)

重实现: QAbstractItemView::rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end).

[重写虚拟受保护] void QListView::rowsInserted(const QModelIndex &parent, int start, int end)

重实现: QAbstractItemView::rowsInserted(const QModelIndex &parent, int start, int end).

[重写虚拟受保护] void QListView::scrollContentsBy(int dx, int dy)

重实现: QAbstractScrollArea::scrollContentsBy(int dx, int dy).

通过 dxdy 滚动视图内容。

[重写虚拟] void QListView::scrollTo(const QModelIndex &index, QAbstractItemView::ScrollHint hint = EnsureVisible)

重实现: QAbstractItemView::scrollTo(const QModelIndex &index, QAbstractItemView::ScrollHint hint).

[重写虚拟受保护] QModelIndexList QListView::selectedIndexes() const

重实现: QAbstractItemView::selectedIndexes() const.

[覆盖虚保护] void QListView::selectionChanged(const QItemSelection &selected, const QItemSelection &deselected)

重实现: QAbstractItemView::selectionChanged(const QItemSelection &selected, const QItemSelection &deselected).

[保护] void QListView::setPositionForIndex(const QPoint &position, const QModelIndex &index)

将模型中索引为 index 的项的内容位置设置为给定的 position。如果列表视图的运动模式是静态或其视图模式是 ListView,则此函数将不起作用。

[覆盖虚] void QListView::setRootIndex(const QModelIndex &index)

重实现: QAbstractItemView::setRootIndex(const QModelIndex &index).

void QListView::setRowHidden(int row, bool hide)

如果 hide 为真,则将隐藏指定的 row;否则将显示 row

另请参阅isRowHidden

[覆盖虚保护] void QListView::setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags command)

重实现: QAbstractItemView::setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags flags).

[覆盖虚保护] void QListView::startDrag(Qt::DropActions supportedActions)

重实现: QAbstractItemView::startDrag(Qt::DropActions supportedActions).

[覆盖虚保护] void QListView::timerEvent(QTimerEvent *e)

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

[覆盖虚保护] void QListView::updateGeometries()

重实现: QAbstractItemView::updateGeometries().

[覆盖虚保护] int QListView::verticalOffset() const

重实现: QAbstractItemView::verticalOffset() const.

[覆盖虚保护] QSize QListView::viewportSizeHint() const

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

[覆盖虚函数] QRect QListView::visualRect(const QModelIndex &index) const

重写: QAbstractItemView::visualRect(const QModelIndex &index) const.

[覆盖虚保护] QRegion QListView::visualRegionForSelection(const QItemSelection &selection) const

重写: QAbstractItemView::visualRegionForSelection(const QItemSelection &selection) const.

自4.7版起,返回的区域仅包含与视口相交的矩形(或包含在视口内)。

[覆盖虚保护] void QListView::wheelEvent(QWheelEvent *e)

重写: QAbstractScrollArea::wheelEvent(QWheelEvent *e).

© 2024 Qt公司有限公司。本文档中包含的贡献是各自所有者的版权所有。本提供的文档根据自由软件基金会发布的自由文档许可证版本1.3的条款进行许可。Qt及其相应标志是芬兰和/或世界其他国家的Qt公司有限公司的商标。所有其他商标均为各自所有者的财产。