qlistview_zh
2022-04-07 14:39:44

Class::QListView

暂无该属性


Detailed Description

QListView 类基于模型实现了一个显示列表的视图,它可以是列表视图或图标视图。

QListView 将存储在模型中的数据项以简单的非层级列表或图标集合的形式呈现。该类可以替代之前由QListBox类和QIconView类提供的列表和图标视图,使用 Qt 的模型/视图体系结构更加灵活。

QListView 类是 Model/View Classes 中的视图类之一,也是 Qt Model/View Programming 的一部分。

该视图无法显示水平或垂直表头,如果要显示一个数据项列表和一个水平表头,使用 QTreeView 替代。

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

列表视图里面的数据可通过两种视图模型中的任意一种来显示:在 ListMode 中,数据项以一个简单列表的形式显示;在 IconMode 中,视图列表使用icon view,使数据项以图标形式显示,就类似于文件管理器中的文件。默认情况下,列表视图为 ListMode 。若要更改视图模式,须使用 setViewMode() 函数,若要确定当前视图模式,可以使用 viewMode() 函数。

列表视图中,数据项排列的方向取决于 flow() 函数。数据项固定或允许移动,取决于视图的 movement() 函数。

如果模型中的项目不能完全按照流动方向布置,根据 isWrapping() 的属性,这些数据项会在视图部件的边界处换行;尤其是当数据项由图标视图表示时,此函数属性非常实用。

resizeMode() 函数和 layoutMode() 函数控制数据项是否会根据布局大小的调整进行自动布局,以及数据项的布局模式。数据项分布的间隔通过 spacing() 函数控制,数据项存储在一个概念网格中,该网格大小由 gridSize() 函数控制。数据项的图标大小由 iconSize() 函数控制。

性能提升

当要显示大量数据项时,提前向视图提供需要处理的数据,这样就能提升性能。将 uniformItemSizes 属性的值设置为 True 可以使视图显示大小相同的数据项。

See also View Classes Item Views Puzzle Example QTreeView QTableView QListWidget

QListView::QListView

[public constructor  ]

QListView(QWidget *parent) 可以创建一个新的 QListView ,并设置_parent_参数(使用给定的父项)来查看模型。使用 setModel() 函数设置模型。

QListView::QListView

[private constructor  ]

QListView(const QListView &)

QListView::QListView

[private constructor  ]

QListView(QListViewPrivate &dd, QWidget *parent)

QListView::batchSize

[public plain  ]

int batchSize() const See also setBatchSize()

QListView::clearPropertyFlags

[public plain  ]

void clearPropertyFlags() 若要清除 QListView 特定的属性标志。请参见 viewMode 属性。

继承自 QAbstractItemView 类的属性不会被属性标志覆盖。具体来说,在调用 setMovement() 函数或 setViewMode() 函数时,才会运算 QAbstractItemView::dragEnabledQAbstractItemView::acceptDrops 属性。

QListView::contentsSize

[private plain  ]

QSize contentsSize() const

QListView::currentChanged

[protected plain  virtual]

void currentChanged(const QModelIndex &current, const QModelIndex &previous) override

QListView::d_func

[private plain  ]

QListViewPrivate * d_func()

QListView::d_func

[private plain  ]

const QListViewPrivate * d_func() const

QListView::dataChanged

[protected plain  virtual]

void dataChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector &roles) override

QListView::doItemsLayout

[private plain  virtual]

void doItemsLayout() override 根据 flow 属性和 warpping 属性布局数据项。

QListView::dragLeaveEvent

[protected plain  virtual]

void dragLeaveEvent(QDragLeaveEvent *e) override

QListView::dragMoveEvent

[protected plain  virtual]

void dragMoveEvent(QDragMoveEvent *e) override

QListView::dropEvent

[protected plain  virtual]

void dropEvent(QDropEvent *event) override

QListView::event

[protected plain  virtual]

bool event(QEvent *e) override

QListView::flow

[public plain  ]

QListView::Flow flow() const See also setFlow()

QListView::gridSize

[public plain  ]

QSize gridSize() const See also setGridSize()

QListView::horizontalOffset

[protected plain  virtual]

int horizontalOffset() const override

QListView::indexAt

[public plain  virtual]

QModelIndex indexAt(const QPoint &p) const override

QListView::indexesMoved

[public signal  ]

void indexesMoved(const QModelIndexList &indexes) 当指定的_indexes_在视图中移动时,会发出此信号。

QListView::isIndexHidden

[protected plain  virtual]

bool isIndexHidden(const QModelIndex &index) const override

QListView::isRowHidden

[public plain  ]

bool isRowHidden(int row) const 如果_row_被隐藏,则返回值为True;否则返回值为false

QListView::isSelectionRectVisible

[public plain  ]

bool isSelectionRectVisible() const

QListView::isWrapping

[public plain  ]

bool isWrapping() const

QListView::itemAlignment

[public plain  ]

Qt::Alignment itemAlignment() const See also setItemAlignment()

QListView::layoutMode

[public plain  ]

QListView::LayoutMode layoutMode() const See also setLayoutMode()

QListView::metaObject

[private plain  virtual]

const QMetaObject * metaObject() const override

QListView::modelColumn

[public plain  ]

int modelColumn() const See also setModelColumn()

QListView::mouseMoveEvent

[protected plain  virtual]

void mouseMoveEvent(QMouseEvent *e) override

QListView::mouseReleaseEvent

[protected plain  virtual]

void mouseReleaseEvent(QMouseEvent *e) override

QListView::moveCursor

[protected plain  virtual]

QModelIndex moveCursor(QAbstractItemView::CursorAction cursorAction, Qt::KeyboardModifiers modifiers) override

QListView::movement

[public plain  ]

QListView::Movement movement() const See also setMovement()

QListView::operator=

[private copy-assign  ]

QListView & operator=(const QListView &)

QListView::paintEvent

[protected plain  virtual]

void paintEvent(QPaintEvent *e) override

QListView::qt_metacall

[private plain  virtual]

int qt_metacall(QMetaObject::Call , int , void **) override

QListView::qt_metacast

[private plain  virtual]

void * qt_metacast(const char *) override

QListView::qt_static_metacall

[private plain static ]

void qt_static_metacall(QObject *, QMetaObject::Call , int , void **)

QListView::rectForIndex

[protected plain  ]

QRect rectForIndex(const QModelIndex &index) const 返回模型中位于_index_处的数据项的矩形。矩形与内容保持协调。

See also visualRect()

QListView::reset

[private plain  virtual]

void reset() override

QListView::resizeContents

[private plain  ]

void resizeContents(int width, int height) 调整内部内容的_width_和_height_,并设置相应滚动条的范围。

QListView::resizeEvent

[protected plain  virtual]

void resizeEvent(QResizeEvent *e) override

QListView::resizeMode

[public plain  ]

QListView::ResizeMode resizeMode() const See also setResizeMode()

QListView::rowsAboutToBeRemoved

[protected plain  virtual]

void rowsAboutToBeRemoved(const QModelIndex &parent, int start, int end) override

QListView::rowsInserted

[protected plain  virtual]

void rowsInserted(const QModelIndex &parent, int start, int end) override

QListView::scrollContentsBy

[private plain  virtual]

void scrollContentsBy(int dx, int dy) override 滚动浏览视图时,视图在 X、Y 方向上各移动_dx_、_dy_距离

QListView::scrollTo

[public plain  virtual]

void scrollTo(const QModelIndex &index, QAbstractItemView::ScrollHint hint) override

QListView::selectedIndexes

[protected plain  virtual]

QModelIndexList selectedIndexes() const override

QListView::selectionChanged

[protected plain  virtual]

void selectionChanged(const QItemSelection &selected, const QItemSelection &deselected) override

QListView::setBatchSize

[public plain  ]

void setBatchSize(int batchSize) See also batchSize()

QListView::setFlow

[public plain  ]

void setFlow(QListView::Flow flow) See also flow()

QListView::setGridSize

[public plain  ]

void setGridSize(const QSize &size) See also gridSize()

QListView::setItemAlignment

[public plain  ]

void setItemAlignment(Qt::Alignment alignment) See also itemAlignment()

QListView::setLayoutMode

[public plain  ]

void setLayoutMode(QListView::LayoutMode mode) See also layoutMode()

QListView::setModelColumn

[public plain  ]

void setModelColumn(int column) See also modelColumn()

QListView::setMovement

[public plain  ]

void setMovement(QListView::Movement movement) See also movement()

QListView::setPositionForIndex

[protected plain  ]

void setPositionForIndex(const QPoint &position, const QModelIndex &index) 位于模型_index_处的数据项,数据项内容的位置会被设置为给定_position_。但如果列表视图的移动模式是不可移动的或是视图列表模式,此函数将不起作用。

QListView::setResizeMode

[public plain  ]

void setResizeMode(QListView::ResizeMode mode) See also resizeMode()

QListView::setRootIndex

[private plain  virtual]

void setRootIndex(const QModelIndex &index) override

QListView::setRowHidden

[public plain  ]

void setRowHidden(int row, bool hide) 如果_hide_的值为 True ,则给定的_row_将被隐藏;否则将显示该_row_。

See also isRowHidden()

QListView::setSelection

[protected plain  virtual]

void setSelection(const QRect &rect, QItemSelectionModel::SelectionFlags command) override

QListView::setSelectionRectVisible

[public plain  ]

void setSelectionRectVisible(bool show) See also isSelectionRectVisible()

QListView::setSpacing

[public plain  ]

void setSpacing(int space) See also spacing()

QListView::setUniformItemSizes

[public plain  ]

void setUniformItemSizes(bool enable) See also uniformItemSizes()

QListView::setViewMode

[public plain  ]

void setViewMode(QListView::ViewMode mode) See also viewMode()

QListView::setWordWrap

[public plain  ]

void setWordWrap(bool on) See also wordWrap()

QListView::setWrapping

[public plain  ]

void setWrapping(bool enable) See also isWrapping()

QListView::spacing

[public plain  ]

int spacing() const See also setSpacing()

QListView::startDrag

[protected plain  virtual]

void startDrag(Qt::DropActions supportedActions) override

QListView::timerEvent

[protected plain  virtual]

void timerEvent(QTimerEvent *e) override

QListView::uniformItemSizes

[public plain  ]

bool uniformItemSizes() const See also setUniformItemSizes()

QListView::updateGeometries

[protected plain  virtual]

void updateGeometries() override

QListView::verticalOffset

[protected plain  virtual]

int verticalOffset() const override

QListView::viewMode

[public plain  ]

QListView::ViewMode viewMode() const See also setViewMode()

QListView::viewOptions

[protected plain  virtual]

QStyleOptionViewItem viewOptions() const override

QListView::viewportSizeHint

[protected plain  virtual]

QSize viewportSizeHint() const override

QListView::visualIndex

[private plain  ]

int visualIndex(const QModelIndex &index) const

QListView::visualRect

[public plain  virtual]

QRect visualRect(const QModelIndex &index) const override

QListView::visualRegionForSelection

[protected plain  virtual]

QRegion visualRegionForSelection(const QItemSelection &selection) const override 自4.7起,返回的区域只与可视区域交叉(或包含在可视区域中)的矩形。

QListView::wheelEvent

[protected plain  virtual]

void wheelEvent(QWheelEvent *e) override

QListView::wordWrap

[public plain  ]

bool wordWrap() const See also setWordWrap()

QListView::~QListView

[public destructor  virtual]

~QListView() 销毁视图 QListView::LeftToRightLeftToRight

Constant Description
QListView::LeftToRight 数据项在视图中从左至右排列。
QListView::TopToBottomTopToBottom
Constant Description
:------- :-----
QListView::TopToBottom 数据项在视图中从上至下排列。

QListView::SinglePassSinglePass

Constant Description
QListView::SinglePass 所有数据项立即进行布局。
QListView::BatchedBatched
Constant Description
:------- :-----
QListView::Batched 数据项按照 batchSize 属性所设置的数值分批布局。

See also batchSize QListView::StaticStatic

Constant Description
QListView::Static 用户无法移动数据项。
QListView::FreeFree
Constant Description
:------- :-----
QListView::Free 用户可任意移动数据项。
QListView::SnapSnap
Constant Description
:------- :-----
QListView::Snap 当数据项移动时,数据项会被捕捉到指定的网格。请参见 setGridSize() 函数。

QListView::FixedFixed

Constant Description
QListView::Fixed 数据项仅在第一次显示视图时进行布局。
QListView::AdjustAdjust
Constant Description
:------- :-----
QListView::Adjust 每次调整视图大小时,数据项都会重新布局。

QListView::ListModeListMode

Constant Description
QListView::ListMode 使用 TopToBottom 布局,以小图标显示数据项,并且数据项只能静态移动(项目不能被用户移动)。
QListView::IconModeIconMode
Constant Description
:------- :-----
QListView::IconMode 使用 LeftToRight 布局,以大图标显示数据项,并且数据项可以任意移动。

layoutMode 属性设置为 Batched 时,此属性用于控制每个批量的数量。 默认值为100。

此属性用于控制数据项的布局方向。 如果属性为 LeftToRight ,则数据项将从左至右进行布局。如果 isWrapping 属性的值为True,则当数据项排列至可见视图的最右侧时,会自动换行。如果属性为 TopToBottom ,则当数据项排列至可见视图的最下方时,会自动换行。

当视图可见时,该属性的设置会导致视图中的数据项重新布局。

TopToBottom 为此属性的默认属性。

See also viewMode 此属性用于控制布局中网格的大小。 此属性表示数据项排列所在网格的大小。 gridSize 默认值是空,这表示此处没有网格,且数据项的排列不按网格布局进行排列。将此属性的值设置为非空时,将启动网格布局。(当网格布局生效时, spacing 属性被忽略。)

当视图可见时,该属性的设置会导致视图中的数据项重新布局。

See also viewMode 此属性用于控制数据项是否换行。 此属性用于控制当可见区域中没有多余的空间时,是否应该换行。并且由 flow 属性决定该布局中换行位置。

当视图可见时,该属性的设置会导致视图中的数据项重新布局。

false为此属性的默认值。

See also viewMode 此属性用于控制数据单元格中每个数据项的对齐方式。 该属性仅支持启用了 TopToBottom 排列方式并允许自动换行的 ListMode 。对齐方式默认为0,此时,数据项将完全填充单元格。

此属性用于控制数据项的布局是立即进行还是延迟进行。 此属性用于控制数据项的布局模式。当模式为 SinglePass (默认模式)时,所有的数据项都将被一次性布局。当模式是 Batched 时,在处理事件时,数据项根据 batchSize 设置的值分批进行排列。当剩余数据项被按批次排列时,能够立即查看已经排列好的可见项目并与之交互。

See also viewMode 此属性用于显示可见模型的列。 默认情况下,该属性默认为0,表示显示模型中的第一列。

此属性用于控制数据项移动是可以移动至任何位置,还是只能移至视图的概念网格中,或者不允许被移动。 此属性用于控制用户在视图中移动数据项的方式。 Static 表示数据项不能被用户移动。 Free 表示用户可以将数据项拖放到视图中的任意位置。 Snap 表示用户可以拖放数据项,但只能拖放到 gridSize 属性所指定的概念网格中。

当视图可见时,该属性的设置会导致视图中的数据项重新布局。

Static 为该属性的默认属性。

See also gridSize resizeMode viewMode 此属性用于控制当调整视图大小时,数据项是否会重新布局。 如果该属性为 Adjust ,当调整视图大小时,数据项会重新布局。如果该属性为 Fixed ,当调整视图大小时,数据项仍保持原来的布局。

Fixed 为此属性的默认属性。

See also movement gridSize viewMode 此属性用于控制选定的矩形是否应为可见状态。 如果该属性的值为True,那么选定的矩形则是可见的;否则该矩形将被隐藏。

**Note:**该属性仅在可以选择多个数据项时才有效;当选定模式是 QAbstractItemView::SingleSelection 时,则此属性不会生效。

false为此属性的默认值。

该属性用于控制布局中数据项周围空白部分的大小。 此属性表示布局中数据项周围空白部分的大小。

当视图可见时,该属性的设置会导致视图中的数据项重新布局。

默认情况下,该属性的值为0。

See also viewMode 此属性用于控制所有在列表视图中的数据项是否具有相同大小。 只有在需要保证视图中所有数据项的大小都相同时,才会将该属性的值设置为 True 。这对视图的性能有一定的优化作用。

false为此属性的默认值。

此属性用于控制 QListView 的视图模型。 此属性会改变其它尚未设置的属性,以符合当前的视图模式。 QListView 的特定属性一旦被设置,将不会被改变,除非调用了函数。

移动属性将控制设置的视图模式将启用或禁用拖放。 ListMode 下,默认移动属性是 Static (禁用拖放); IconMode 下,默认移动属性是 Free (启用拖放)。

See also isWrapping spacing gridSize flow movement resizeMode 此属性用于控制数据项中的文字是否自动换行。 当此属性的值为True时,则在数据项文本中分词的适当处进行换行;否则数据项文本不进行换行处理。false为该属性的默认值。

请注意,即使启用自动换行,单元格也不会自动适应文本大小。基于视图的 QAbstractItemView::textElideMode 属性,它会用省略号代替显示无法显示出的文本。