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

相关文章

PostgreSQL的扩展dict_int应用案例解析

《PostgreSQL的扩展dict_int应用案例解析》dict_int扩展为PostgreSQL提供了专业的整数文本处理能力,特别适合需要精确处理数字内容的搜索场景,本文给大家介绍PostgreS... 目录PostgreSQL的扩展dict_int一、扩展概述二、核心功能三、安装与启用四、字典配置方法

Qt QCustomPlot库简介(最新推荐)

《QtQCustomPlot库简介(最新推荐)》QCustomPlot是一款基于Qt的高性能C++绘图库,专为二维数据可视化设计,它具有轻量级、实时处理百万级数据和多图层支持等特点,适用于科学计算、... 目录核心特性概览核心组件解析1.绘图核心 (QCustomPlot类)2.数据容器 (QCPDataC

Python中re模块结合正则表达式的实际应用案例

《Python中re模块结合正则表达式的实际应用案例》Python中的re模块是用于处理正则表达式的强大工具,正则表达式是一种用来匹配字符串的模式,它可以在文本中搜索和匹配特定的字符串模式,这篇文章主... 目录前言re模块常用函数一、查看文本中是否包含 A 或 B 字符串二、替换多个关键词为统一格式三、提

Java MQTT实战应用

《JavaMQTT实战应用》本文详解MQTT协议,涵盖其发布/订阅机制、低功耗高效特性、三种服务质量等级(QoS0/1/2),以及客户端、代理、主题的核心概念,最后提供Linux部署教程、Sprin... 目录一、MQTT协议二、MQTT优点三、三种服务质量等级四、客户端、代理、主题1. 客户端(Clien

SpringBoot开发中十大常见陷阱深度解析与避坑指南

《SpringBoot开发中十大常见陷阱深度解析与避坑指南》在SpringBoot的开发过程中,即使是经验丰富的开发者也难免会遇到各种棘手的问题,本文将针对SpringBoot开发中十大常见的“坑... 目录引言一、配置总出错?是不是同时用了.properties和.yml?二、换个位置配置就失效?搞清楚加

Qt如何实现文本编辑器光标高亮技术

《Qt如何实现文本编辑器光标高亮技术》这篇文章主要为大家详细介绍了Qt如何实现文本编辑器光标高亮技术,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以了解下... 目录实现代码函数作用概述代码详解 + 注释使用 QTextEdit 的高亮技术(重点)总结用到的关键技术点应用场景举例示例优化建议

Qt 设置软件版本信息的实现

《Qt设置软件版本信息的实现》本文介绍了Qt项目中设置版本信息的三种常用方法,包括.pro文件和version.rc配置、CMakeLists.txt与version.h.in结合,具有一定的参考... 目录在运行程序期间设置版本信息可以参考VS在 QT 中设置软件版本信息的几种方法方法一:通过 .pro

Python中对FFmpeg封装开发库FFmpy详解

《Python中对FFmpeg封装开发库FFmpy详解》:本文主要介绍Python中对FFmpeg封装开发库FFmpy,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、FFmpy简介与安装1.1 FFmpy概述1.2 安装方法二、FFmpy核心类与方法2.1 FF

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间

CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比

《CSS中的Static、Relative、Absolute、Fixed、Sticky的应用与详细对比》CSS中的position属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布... css 中的 position 属性用于控制元素的定位方式,不同的定位方式会影响元素在页面中的布局和层叠关