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

news2024/11/25 22:31:46

一、前言

        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.coloradmin.cn/o/1090413.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【特纳斯电子】基于物联网的空气质量检测-仿真设计

视频及资料链接:基于物联网的空气质量检测-仿真设计 - 电子校园网 (mcude.com) 编号: T0082203M-FZ 设计简介: 本设计是基于物联网的空气质量检测系统,主要实现以下功能: 1.通过OLED显示模式、温度、湿度、PM2.5、…

第七章:命令行操作基础

命令行操作基础 一、 配置网络设备的方法1. 通过Console口本地访问2. 通过网络口访问2.1 使用Telnet进行连接2.2 使用SSH进行连接 二、 命令行使用基础1. 命令行试图1.1用户视图1.2 系统视图1.3 接口视图 2.视图的切换2.1 system-view 3. interface g0/04. quit5. return 三、 …

发现更多美景!XnViewMP for Mac/Windows 图片浏览软件

想要轻松快捷地浏览、管理和编辑您的照片吗?XnViewMP for Mac 是您的最佳选择!这款强大而多功能的图片浏览软件将给您带来全新的视觉体验。 借助 XnViewMP,您可以方便地浏览各种图片格式,包括JPEG、PNG、GIF等,并支持…

MySQL系列---Online DDL

目录 背景实验总结技术官网原理 背景 一直以为任何DDL操作都会造成锁表,所以之前每次线上业务需要DDL时都会停机维护,而一维护就需要熬夜,为了不熬夜,所以一直都在想DDL和DML为啥不能并行。 偶尔拿测试环境试了一下才知道&#x…

vue2中render函数学习思维导图

vue2之renderjsx从细节入手&#xff0c;彻底掌握 父组件 .vue <template><div><myCom :msg"msg" :data-list"dataList" on-change"comChange" /></div> </template> <script> import myCom from ./render…

使用eBPF加速阿里云服务网格ASM

背景 随着云原生应用架构的快速发展&#xff0c;微服务架构已经成为了构建现代应用的主要方式之一。而在微服务架构中&#xff0c;服务间的通信变得至关重要。为了实现弹性和可伸缩性&#xff0c;许多组织开始采用服务网格技术来管理服务之间的通信。 Istio作为目前最受欢迎的…

ardupilot开发 --- External LEDs篇

概述 夜航灯&#xff0c;LED状态灯&#xff0c;显示飞机当前状态&#xff1b; 支持的连接方式&#xff1a; I2C for external LED or RGB LEDs I^2C总线连接&#xff1b;SERVOx_FUNCTION for serially programmed device 串行连接&#xff1b;CANBUS for DroneCAN LEDs CAN总…

C# 往多线程传递安全参数的方法

在C#构造一个线程时&#xff0c;要向其传递一个函数&#xff0c;这个函数可以试简单的无参函数&#xff0c;也可以是参数为Object类型的函数&#xff0c;但是由于参数类型为Object&#xff0c;因此编译器无法实行类型检查&#xff0c;看下面的例子&#xff1a; class Program{…

JDBC-day04(数据库事务)

六&#xff1a;数据库事务 1.数据库事务介绍 事务&#xff1a;一组逻辑操作单元,使数据从一种状态变换到另一种状态。 事务处理&#xff08;事务操作&#xff09;&#xff1a;保证所有事务都作为一个工作单元来执行&#xff0c;即使出现了故障&#xff0c;都不能改变这种执行…

使用Swift开发Framework遇到的问题及解决方法

文章目录 一、Swift 旧版本Xcode 打出来的framework 新版本不兼容问题 一、Swift 旧版本Xcode 打出来的framework 新版本不兼容问题 Cannot load module xxx built with SDK ihphoneos16.4 when using SDK iphoneos17.0:XXX/xxx.framework/Modules/xxx.swiftmodule/arm64-appl…

公司要做大数据可视化看板,除了EXCEL以外有没有好用的软件可以用

当企业需要进行大数据可视化看板的设计和开发时&#xff0c;除了Excel&#xff0c;还有许多其他强大且适合大数据可视化的软件工具。以下是几种常用的好用软件&#xff0c;以及它们的特点和优势&#xff0c;供您参考。 一、Datainside 特点和优势&#xff1a; - **易于使用**…

一文讲清楚密评中的数据库存储加密 安当加密

密评对数据库存储加密的要求&#xff0c;主要包括对数据加密的要求和密码算法、密钥管理系统、密码应用子系统和密码安全防护机制等密码协议的要求。 首先&#xff0c;对于数据加密的要求&#xff0c;数据库加密技术应能够提供足够的数据安全性&#xff0c;保证数据在存储、传输…

Android Studio gradle手动下载配置

项目同步时&#xff0c;有时候会遇到Android Studio第一步下载gradle就是连接失败的问题。 这种情况&#xff0c;我们可以手动去gradle官网下载好gradle文件&#xff0c;放置在Android Studio的缓存目录下&#xff0c;这样AS在同步代码时就会自动解压下载好的文件。 步骤如下&…

安装Ubuntu玩玩

闲着没事儿&#xff0c;装个linux系统玩玩。听说乌班图系统比较火&#xff0c;那咱就玩玩这个。 1、下载一个比较小的系统 ubuntu系统下载_ubuntu linux最新版系统免费下载 - 系统之家 2、下载完后用虚拟机一键式安装。版本18.10 界面还是很简洁美观 3、安装ssh。 &#x…

Go语言函数和包介绍

函数 什么是函数&#xff1f; 函数是执行特定任务的代码块。函数接受输入&#xff0c;对输入执行一些计算&#xff0c;然后生成输出。 通常每一个程序都包含有很多的函数&#xff0c;系统通过函数来划分不同功能&#xff0c;将整体任务进行分解。 在 Go 语言中&#xff0c;…

Idea使用技巧——导包优化,新版idea界面取消,界面字体放大缩小

导包优化 on the fly 翻译为立刻 第一个表示&#xff0c;如果导入的包没有冲突&#xff0c;会自动帮你导入。如果输入List 无需手动altenter 第二个表示&#xff0c;没有引用的包&#xff0c;会自动删除。这个对于代码整洁尤其适用。相当于ctrlalto的功能 新版idea的界面取消 …

Uniapp 入门

创建项目 参考&#xff1a;uni-app创建新页面和页面的配置_uniapp多页面配置-CSDN博客 添加页面 添加路由 显示效果 网址&#xff1a;http://localhost:8080/#/pages/task/taskDetails 参考&#xff1a;uni-app官网 在 HBuilder X 使用命令行引入 uni-ui npm i dcloudio/un…

微软和OpenAI正在开发AI芯片, 并计划下个月发布

今年初&#xff0c;Chat**引起了无数网友关注&#xff0c;一度成为了热门话题。这是由人工智能研究实验室OpenAI开发的一款聊天机器人模型&#xff0c;也称为一种人工智能&#xff08;AI&#xff09;技术驱动的自然语言处理工具。能够通过学习和理解人类的语言来进行对话&#…

中国移动 OneNET 免费的物联网平台

中国移动 OneNET 物联网平台提供免费的设备连接通信服务。 01 中移 OneNET 物联网平台 中国移动 OneNET 定位为 PaaS 服务&#xff0c;即在物联网应用和真实设备之间搭建高效、稳定、安全的应用平台&#xff1a;面向设备&#xff0c;适配多种网络环境和常见传输协议&#xff0c…

Element UI库 之 el-input 赋值后不能删除,修改,输入

最近做了一个需求就是导入数据的&#xff0c; 导入了之后发现打折跟促销价都发不能修改了&#xff0c; 甚至删除都不行。后面去查了下发现大概是数据响应的问题。大概的解决办法有下面几个&#xff0c;我是用最后一个解决的 方法一&#xff1a;强制更新 在绑定input里面的调用…