Qt入门系列开发教程高级控件篇QListview列表视图

Posted 鱼酱2333

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt入门系列开发教程高级控件篇QListview列表视图相关的知识,希望对你有一定的参考价值。

效果图

描述

QListView 将存储在模型中的项目显示为简单的非分层列表或图标集合。此类用于提供以前由 QListBox 和 QIconView 类提供的列表和图标视图,但使用 Qt 的模型/视图架构提供的更灵活的方法。
QListView 类是模型/视图类之一,是 Qt 模型/视图框架的一部分。
此视图不显示水平或垂直标题;要显示带有水平标题的项目列表,请改用 QTreeView。
QListView 实现了 QAbstractItemView 类定义的接口,以允许它显示从 QAbstractItemModel 类派生的模型提供的数据。
列表视图中的项目可以使用两种视图模式之一显示: 在 ListMode 中,项目以简单列表的形式显示;在 IconMode 中,列表视图采用图标视图的形式,其中项目以图标的形式显示,如文件管理器中的文件。默认情况下,列表视图处于 ListMode。要更改视图模式,请使用 setViewMode() 函数,要确定当前视图模式,请使用 viewMode()。
这些视图中的项目按列表视图的 flow() 指定的方向布置。根据视图的 move() 状态,项目可以固定在适当的位置,也可以允许移动。
如果模型中的item不能完全按照流的方向布局,可以在view widget的边界处进行包裹;这取决于 isWrapping()。当项目由图标视图表示时,此属性很有用。
resizeMode() 和 layoutMode() 控制项目的布局方式和时间。项目根据它们的间距() 进行间隔,并且可以存在于由 gridSize() 指定大小的概念网格内。这些项目可以根据它们的 iconSize() 呈现为大图标或小图标。

属性

  • batchSize : int
    如果 layoutMode 设置为 Batched,则此属性保存每个批次中布局的项目数

  • flow : Flow
    QListView::LeftToRight项目在视图中从左到右排列。
    QListView::TopToBottom项目在视图中从上到下排列。

  • gridSize : QSize
    该属性保存布局网格的大小

  • isWrapping : bool
    此属性保存项目布局是否应换行。

  • itemAlignment : Qt::Alignment
    此属性保存其单元格中每个项目的对齐方式

  • layoutMode : LayoutMode
    确定项目的布局应该立即发生还是延迟发生。
    此属性保存项目的布局模式。 当模式为 SinglePass(默认)时,项目将一次性全部布局。 当模式为 Batched 时,项目以 batchSize 项目的批次布局,同时处理事件。 这使得在布置其余部分时可以立即查看可见项目并与之交互。
    QListView::SinglePass物品一下子就摆好了。
    QListView::Batched这些项目以批次大小的项目排列。

  • modelColumn : int
    此属性保存模型中可见的列

  • movement : Movement
    QListView::Static用户不能移动项目。
    QListView::Free项目可以由用户自由移动。
    QListView::Snap项目在移动时对齐到指定的网格; 请参阅 setGridSize()。

  • resizeMode : ResizeMode
    QListView::Fixed这些项目只会在第一次显示视图时布置。
    QListView::Adjust每次调整视图大小时都会布置项目。

  • selectionRectVisible : bool
    如果选择矩形应该可见

  • spacing : int
    此属性保存布局中项目周围的空间

  • uniformItemSizes : bool
    此属性保存列表视图中的所有项目是否具有相同的大小

  • viewMode : ViewMode
    QListView::ListMode项目使用 TopToBottom 流布局,尺寸小,静态移动
    QListView::IconMode项目使用 LeftToRight 流布局,具有大尺寸和自由移动

  • wordWrap : bool
    此属性保存项目文本自动换行策略

API

//如果 layoutMode 设置为 Batched,则此属性保存每个批次中布局的项目数
//默认值为 100。
int batchSize() const
//清除 QListView 特定的属性标志。 请参阅视图模式。
void clearPropertyFlags()
//flow方向
QListView::Flow flow() const
//该属性保存布局网格的大小
QSize gridSize() const
//隐藏行
bool isRowHidden(int row) const
//如果选择矩形应该可见
bool isSelectionRectVisible() const
//是否需要换行
bool isWrapping() const
//item对齐方式
Qt::Alignment itemAlignment() const
//确定项目的布局应该立即发生还是延迟发生。
//此属性保存项目的布局模式。 当模式为 SinglePass(默认)时,项目将一次性全部布局。
// 当模式为 Batched 时,项目以 batchSize 项目的批次布局,同时处理事件。
// 这使得在布置其余部分时可以立即查看可见项目并与之交互。
//QListView::LayoutMode layoutMode() const
//模型可见列数
int modelColumn() const
//移动模式
QListView::Movement movement() const
//大小模式
QListView::ResizeMode resizeMode() const
//设置批次数
void setBatchSize(int batchSize)
//list方向
void setFlow(QListView::Flow flow)
//单元格大小
void setGridSize(const QSize &size)
//item对齐方式
void setItemAlignment(Qt::Alignment alignment)
//批次加载模式或者一次都加载
void setLayoutMode(QListView::LayoutMode mode)
//设置模型可见列
void setModelColumn(int column)
//设置移动模式
void setMovement(QListView::Movement movement)
//设置大小模式
void setResizeMode(QListView::ResizeMode mode)
//设置隐藏行
void setRowHidden(int row, bool hide)
//如果选择矩形应该可见
void setSelectionRectVisible(bool show)
//此属性保存布局中项目周围的空间
void setSpacing(int space)
//此属性保存列表视图中的所有项目是否具有相同的大小
void setUniformItemSizes(bool enable)
//设置 ListMode或IconMode 
void setViewMode(QListView::ViewMode mode)
//此属性保存项目文本自动换行策略
void setWordWrap(bool on)
//此属性保存项目布局是否应换行。
void setWrapping(bool enable)
//空间大小
int spacing() const
//是否固定item大小
bool uniformItemSizes() const
//该属性保存 QListView 的视图模式。
QListView::ViewMode viewMode() const
//此属性保存项目文本自动换行策略
bool wordWrap() const

公有槽函数

//对应点得modelindex
virtual QModelIndex indexAt(const QPoint &p) const override
//滚动到
virtual void scrollTo(const QModelIndex &index, QAbstractItemView::ScrollHint hint = EnsureVisible) override
//modeinx的可见范围
virtual QRect visualRect(const QModelIndex &index) const override

信号

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

以上是关于Qt入门系列开发教程高级控件篇QListview列表视图的主要内容,如果未能解决你的问题,请参考以下文章

Qt入门系列开发教程高级控件篇QTreeView树形视图

Qt入门系列开发教程高级控件篇QTreeWidget树形小部件

Qt入门系列开发教程高级控件篇QTableView表格视图

Qt入门系列开发教程高级控件篇QTableWidget表格小部件

Qt入门系列开发教程QSSqss的实例

Qt入门系列开发教程基础控件篇QLabel文本标签