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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/136457.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Kafka 开启SASL/SCRAM认证 及 ACL授权(一)认证

Kafka 开启SASL/SCRAM认证 及 ACL授权(一)认证。 kafka安全涉及3部份:传输加密,用户认证与授权,ZK开启ACL(Zookeeper存储了kafka的元数据以及用户信息,默认不开启acl所有用户可改,内网环境机器不对外开放可考虑使用默认不开启ZK ACL)。 官网地址:https://kafka.ap…

02_单片机及开发板介绍

单片机简介 单片机,又称为微控制器(Microcontroller),是一种集成了微处理器核心、存储器、输入/输出接口及各种功能模块的集成电路芯片。它通常由中央处理器(CPU)、存储器、输入/输出接口以及各种外设组成&…

Java架构师缓存性能优化

目录 1 缓存的负载策略2 缓存的序列化问题3 缓存命中率低4 缓存对数据库高并发访问5 缓存数据刷新的策略5.1. 实时策略5.2. 异步策略5.3. 定时策略6 何时写缓存7 批量数据来更新缓存8 缓存数据过期的策略9 缓存数据如何恢复10 缓存数据如何迁移11 缓存冷启动和缓存预热想学习架…

ubuntu下yolov5 tensorrt模型部署

文章目录 ubuntu下yolov5 tensorrt模型部署一、Ubuntu18.04环境配置1.1 安装工具链和opencv1.2 安装Nvidia相关库1.2.1 安装Nvidia显卡驱动1.2.2 安装 cuda11.31.2.3 安装 cudnn8.21.2.4 下载 tensorrt8.4.2.41.2.5 下载仓库TensorRT-Alpha并设置 二、从yolov5源码中导出onnx文…

ES _bulk 批量操作用法

es 的 bulk 操作,是用来批量发送请求,或者理解为批量操作的。 支持4种操作 bulk 支持多种操作,如下create、index、update、delete。 create 如果文档不存在就创建,但如果文档存在就返回错误index 如果文档不存在就创建&#x…

SQL Server远程登录失败

SQL Server远程登录失败 检查SQL SERVER 是否允许远程访问. 具体步骤: 1)在远端SQL Server主机上,打开SSMS并连接数据库 2)在相应”数据库”上单击右键,选择”属性” 3)选择”连接”选项卡,检查”远程服务器连接”下,RPC服务是否选择. 设置SQL Server相关TCP连接 1.打开SQL Se…

如何建立线上线下相结合的数字化新零售体系?

身处今数字化时代,建立线上线下相结合的数字化新零售体系是企业成功的关键。蚓链数字化营销系统致力于帮助企业实现数字化转型,打通线上线下销售渠道,提升品牌影响力和用户黏性,那么具体是如何建立的? 1. 搭建数字化中…

SpringBoot-黑马程序员-学习笔记(五)

74.自定义bean属性绑定以及第三方bean属性绑定 自定义bean属性绑定 1.自定义一个bean Data Component public class ServerConfig {private String ipAddress;private int port;private long timeout; } 2.在yml配置文件中中定义一组值 3.在bean中进行属性绑定 加上这个注…

链路层3:VLAN的配置与分析

VLAN的帧格式 VLAN数据帧的传输 在以太网中,加了标签tag的VLAN数据帧我们叫做V-MAC帧,普通的数据帧我们叫做MAC帧。对于主机来说,它只认识普通的MAC帧;对于主机,V-MAC帧和MAC帧它都认。所以,实际上的V-MAC…

linux——多线程,线程控制

目录 一.POSIX线程库 二.线程创建 1.创建线程接口 2.查看线程 3.多线程的健壮性问题 4.线程函数参数传递 5.线程id和地址空间 三.线程终止 1.pthread_exit 2.pthread_cancel 四.线程等待 五.线程分离 一.POSIX线程库 站在内核的角度,OS只有轻量级进程…

SpringBean的初始化流程

当我们启动Spring容器后,会先通过AbstractApplicationContext#refresh方法,调用BeanFactoryPostProcess方法,可以在bean初始化前,修改context中的BeanDefinition,但是因为此时Bean还没有初始化,所以并不会修…

C与C++之间相互调用的基本方法

​ 在你的C语言代码中,不知能否看到类似下面的代码: 这好像没有什么问题,你应该还会想:“嗯⋯是啊,我们的代码都是这样写的,从来没有因此碰到过什么麻烦啊~”。 你说的没错,如果你的…