Qt应用开发(基础篇)——列表视图 QListView

2023-10-11 07:01

本文主要是介绍Qt应用开发(基础篇)——列表视图 QListView,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、前言

        QListView类继承于QAbstractItemView类,提供了一个列表或者图标视图的模型。

        视图基类 QAbstractItemView

       QListView效果相当于Windows文件夹右键->查看->图标和列表,使用setViewMode()设置视图模式,并且提供setIconSize()函数设置图标模型下的项大小,显示大图标或者小图标。

        QListView不显示标题,如果需要显示标题,使用QTreeView,不显示子节点,只显示一列,效果也是和QListView一样的。

二、QListView类

1、属性

1)batchSize

        如果layoutMode设置为Batched,则此属性保存每个批次中布局的项目数量,默认为100。

int batchSize() const
void setBatchSize(int batchSize)
2)layoutMode

        该属性表示项的布局模式,确定项的布局是立即进行还是延迟进行

        当模式是SinglePass(默认)时,所有的项目都是一次性布置的。

        当模式为Batched时,在处理事件时,项目以batchSize数量批次进行布局。这使得它可以即时查看和交互可见的项目,而其余的是布局。

QListView::LayoutMode layoutMode() const
void setLayoutMode(QListView::LayoutMode mode)
enum LayoutMode描述
QListView::SinglePass直接展示
QListView::Batched根据batchSize进行布局展示

3)flow

        该属性表示列表的布局方向,默认为TopToBottom从上到下布局。

QListView::Flow flow() const
void setFlow(QListView::Flow flow)
enum QListView::Flow描述
QListView::LeftToRight项目从左到右排列
QListView::TopToBottom项目从上到下排列

4)gridSize

        该属性表示布局网格的大小,默认为没设置,没有网格,设置之后将打开网格布局,可以由此功能来调整项之间的间距。

QSize gridSize() const
void setGridSize(const QSize &size)
5)isWrapping

        该属性表示当可见区域中没有更多空间时,项目布局是否换行,默认不换行。布局换行的位置取决于flow属性。

bool isWrapping() const
void setWrapping(bool enable)
6)itemAlignment

        该属性表示每一项在它的单元格内的对齐方式。

Qt::Alignment itemAlignment() const
void setItemAlignment(Qt::Alignment alignment)
7)modelColumn

        该属性表示模型中可见的列,默认情况该属性为0,表示将显示模型中的第一列。

int modelColumn() const
void setModelColumn(int column)
8)movement

        该属性表示列表中的项的移动策略,默认为不可移动。

QListView::Movement movement() const
void setMovement(QListView::Movement movement)
enum QListView::Movement描述
QListView::Static项目不能被用户移动
QListView::Free项目可以被用户自由移动
QListView::Snap项目移动时需要和网格对齐,固定在网格上

9)resizeMode

        该属性表示当列表调整大小的时候是否自动调整布局,默认不调整。

QListView::ResizeMode resizeMode() const
void setResizeMode(QListView::ResizeMode mode)
enum QListView::ResizeMode描述
QListView::Fixed第一次显示的时候布局
QListView::Adjust每次调整大小的时候都会重新布局

10)selectionRectVisible

        该属性表示选择矩形是否可视,默认为false。

        只有当选择模式为可选择多个项目的模式时,选择矩形才会显示,所以需要设置SelectionMode(父类属性)不为QAbstractItemView::SingleSelection

bool isSelectionRectVisible() const
void setSelectionRectVisible(bool show)
11)space

        该属性布局中项周围的空间的大小,默认为0。

int spacing() const
void setSpacing(int space)
12)uniformItemSizes

        该属性表示listview中是否全部的项都使用同样的尺寸,默认为false。

bool uniformItemSizes() const
void setUniformItemSizes(bool enable)
13)viewMode

        该属性表示listview中显示的策略。

QListView::ViewMode viewMode() const
void setViewMode(QListView::ViewMode mode)
enum QListView::ViewMode描述
QListView::ListMode列表模式
QListView::IconMode图标模式

14)wordWrap

        该属性表示列表中是否文本换行,默认为不换行false。如果此属性为true,则项目文本在必要的换行处换行。

        这里要注意就算换行了,也不会展开单元格来为文本腾出空间。需要设置textElideMode(父类属性)来设置是否为不显示的文本显示“...”。

bool wordWrap() const
void setWordWrap(bool on)

2、公共方法

1)clearPropertyFlags

        清除listview特殊的标识。

void clearPropertyFlags()
2)isRowHidden

        返回索引下的行是否隐藏。

bool isRowHidden(int row) const

3、信号

1)indexesMoved

        当指定的索引在视图中移动时发出此信号。

void indexesMoved(const QModelIndexList &indexes)

这篇关于Qt应用开发(基础篇)——列表视图 QListView的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/186370

相关文章

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

Python中随机休眠技术原理与应用详解

《Python中随机休眠技术原理与应用详解》在编程中,让程序暂停执行特定时间是常见需求,当需要引入不确定性时,随机休眠就成为关键技巧,下面我们就来看看Python中随机休眠技术的具体实现与应用吧... 目录引言一、实现原理与基础方法1.1 核心函数解析1.2 基础实现模板1.3 整数版实现二、典型应用场景2

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

C#基础之委托详解(Delegate)

《C#基础之委托详解(Delegate)》:本文主要介绍C#基础之委托(Delegate),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 委托定义2. 委托实例化3. 多播委托(Multicast Delegates)4. 委托的用途事件处理回调函数LINQ

利用Python开发Markdown表格结构转换为Excel工具

《利用Python开发Markdown表格结构转换为Excel工具》在数据管理和文档编写过程中,我们经常使用Markdown来记录表格数据,但它没有Excel使用方便,所以本文将使用Python编写一... 目录1.完整代码2. 项目概述3. 代码解析3.1 依赖库3.2 GUI 设计3.3 解析 Mark

Android Kotlin 高阶函数详解及其在协程中的应用小结

《AndroidKotlin高阶函数详解及其在协程中的应用小结》高阶函数是Kotlin中的一个重要特性,它能够将函数作为一等公民(First-ClassCitizen),使得代码更加简洁、灵活和可... 目录1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda

利用Go语言开发文件操作工具轻松处理所有文件

《利用Go语言开发文件操作工具轻松处理所有文件》在后端开发中,文件操作是一个非常常见但又容易出错的场景,本文小编要向大家介绍一个强大的Go语言文件操作工具库,它能帮你轻松处理各种文件操作场景... 目录为什么需要这个工具?核心功能详解1. 文件/目录存javascript在性检查2. 批量创建目录3. 文件

Java中&和&&以及|和||的区别、应用场景和代码示例

《Java中&和&&以及|和||的区别、应用场景和代码示例》:本文主要介绍Java中的逻辑运算符&、&&、|和||的区别,包括它们在布尔和整数类型上的应用,文中通过代码介绍的非常详细,需要的朋友可... 目录前言1. & 和 &&代码示例2. | 和 ||代码示例3. 为什么要使用 & 和 | 而不是总是使

Python循环缓冲区的应用详解

《Python循环缓冲区的应用详解》循环缓冲区是一个线性缓冲区,逻辑上被视为一个循环的结构,本文主要为大家介绍了Python中循环缓冲区的相关应用,有兴趣的小伙伴可以了解一下... 目录什么是循环缓冲区循环缓冲区的结构python中的循环缓冲区实现运行循环缓冲区循环缓冲区的优势应用案例Python中的实现库