当前位置: 首页 > news >正文

【Qt】多元素控件:QListWidget、QTableWidget、QTreeWidget

目录

QListWidget

核心属性:

核心方法:

核心信号:

例子:

QListWidgetItem

QTableWidget

核心方法:

核心信号

QTableWidgetItem

例子:

QTreeWidget

核心方法:

核心信号:

例子:

 QTreeWidgetItem


多元素控件有QListWidget、QListView、QTableWidget、QTableView、QTreeWidget、QTreeView,可以看到这些控件有xxxWidget和xxxView之分。xxxWidget其实是xxxView的子类。xxxView是基于MVC软件框架模式下的控件。

MVC(Model View Controller):一种软件框架模式,由模型、视图、控制器三个组件组成。

Model:承担着管理应用程序数据和业务逻辑的责任,在模型中数据被有效的管理、存储和操作,包括从各种数据源获取数据、对数据进行验证和处理、执行业务规则、确保数据变化时其他组件(视图和控制器)能够即使获取到更新的数据。

View:负责将模型中的的数据呈现给用户,并接收用户的输入。

Controller:接收请求并调用相应的处理方法,将模型返回的数据进行处理传递给视图,确保数据能够被正确的显示在视图中。

xxxView需要使用者自己创建Model对象,比如QStandardModel,并把Model和xxxView关联起来,后续修改Model中的数据就会影响xxxView的显示。而xxxWidge是xxxView的子类,封装了xxxView不需要使用者创建Model对象,直接就可以向xxxWidget中添加数据了。

下面是对于xxxWidget控件的介绍:

QListWidget

表示纵向显示的列表

核心属性:

currentRow:当前选中的是列表中的第几行。行号是从0开始表示。

count:一共有多少行。

sortingEnabled:是自动排序列表中元素。

isWrapping:是否允许换行。

itemAlignment:元素的对齐方式。

selectionRectVisible:是否显示被选中元素。

spacing:元素之间的距离。

核心方法:

1.向列表中添加元素,可以通过QString或QListWidgetItem*的形式向列表中添加元素。

注意:QListWidgetItem*的形式向列表中添加元素的时候,此时需要new一个QListWidgetItem对象,在堆上开辟的该对象内存空间,会被挂到一个它的列表对象上之后统一析构,我们不用对其释放。

2.当前选中的元素的指针(返回指针我们是可以修改这个元素的内容的)

3.设置当前要选中那个元素

4.在指定位置插入元素

5.返回某行元素

6.删除某行元素。返回该行的元素对象指针

核心信号:

1.当选中别的元素时触发。current是当前选中元素的指针,previous是上一次选中元素的指针;row是当前选中元素的函数。

2.点击,双击某个元素时会触发。

例子:

当选中一个元素时,打印出上一次选中的元素和当前选中的元素;点击add按钮向列表中增加单行输入框中的内容,点击delete按钮删除选中的元素。

执行程序,可以新增元素,删除选中的元素。

QListWidgetItem

QListWidgetIitem就是QListWidget中的一个元素,可以由文本+图标构成。

核心方法:

 

QTableWidget

表示一个表格控件。一个表格中包含若干行,每一行有包含若干列。

表格中的每个单元格都是一个QTableWidgetItem

核心方法:

1.根据指定的行数,列数获取表格中的元素

2.设置指定的行数,列数的表格中元素

3.返回当前选中的元素,该元素所在的行,列

4.返回指定的item所在的列,行

 5.获取表格的行数,列数

6.清理表格,再第row行处插入新行,删除第row行

7.setHorizontalHeaderItem是设置指定列的描述信息

核心信号

cell:单元格。

QTableWidgetItem

构造:

和QListWidgetItem大多数方法一样。

获取该QTableWidgetItem对象在表格中的第几列,行:

例子:

QTreeWidget

表示一个树形控件,树形控件的元素分为顶层元素顶层元素下的子元素(子元素下可以继续添加子元素),这些元素都是QTreeWidgetItem类型的,可以向每个元素下添加新元素,每个QTreeWidgetItem的内容可以是文本/图标,每个文本/图标代表一个列。

核心方法:

1.向QTreeWidget添加顶层元素

2.获取指定下标的顶层元素;获取顶层元素的个数

3.获取顶层元素的下标

4. 删除顶层元素,返回值是删除的顶层元素

5.获取当前选中的元素

6.设置QTree的名称

核心信号:

例子:

点击按钮来实现这些功能:向QTreeWidget中添加顶层元素(QTreeWidgetItem)、向选中的元素中添加元素(QTreeWidgetItem)、删除选中的元素(QTreeWidgetItem)

 QTreeWidgetItem

QTreeWudgetItem和上面的QListWidgetItem大多数方法都是一样的,有下面几个独有的:

设置元素是否可用,设置元素是否展开:

注意:QTreeWidgetItem中的setText方法是有两个参数,第一个参数表示的是第几列,一般都是第0列。

http://www.lryc.cn/news/512116.html

相关文章:

  • Docker基础知识 Docker命令、镜像、容器、数据卷、自定义镜像、使用Docker部署Java应用、部署前端代码、DockerCompose一键部署
  • Qt For Android之环境搭建(Qt 5.12.11 Qt下载SDK的处理方案)
  • 低代码开发中 DDD 领域驱动的页面权限控制
  • 如果你的网站是h5网站,如何将h5网站变成小程序-除开完整重做方法如何快速h5转小程序-h5网站转小程序的办法-优雅草央千澈
  • docker redis安装
  • apisix的hmac-auth认证
  • elementPlus消息组件多按钮案例
  • 计算机视觉目标检测-2
  • 爬虫数据存储:Redis、MySQL 与 MongoDB 的对比与实践
  • 深入解析MySQL索引结构:从数组到B+树的演变与优化
  • 【疑难杂症】 HarmonyOS NEXT中Axios库的响应拦截器无法拦截424状态码怎么办?
  • jmeter并发用户逐步递增压测找性能拐点
  • 【PostgreSQL使用】最新功能逻辑复制槽的failover,大数据下高可用再添利器
  • 【开源免费】基于SpringBoot+Vue.JS租房管理系统(JAVA毕业设计)
  • Linux下Nvidia显卡GPU开启驱动持久化
  • MS SQL Server 实战 排查多列之间的值是否重复
  • 【玩转MacBook】Git安装
  • 【优先算法】双指针 --(结合例题讲解解题思路)(C++)
  • 简述css中z-index的作用?如何用定位使用?
  • Redis——数据淘汰策略
  • 机器学习之KNN算法预测数据和数据可视化
  • 前端node.js
  • Excel基础知识
  • Spring Boot对访问密钥加密解密——RSA
  • Vue介绍
  • 表单元素(标签)有哪些?
  • 人工智能与云计算的结合:如何释放数据的无限潜力?
  • TCP Analysis Flags 之 TCP Out-Of-Order
  • 【MyBatis 核心工作机制】注解式开发与动态代理原理
  • 深度学习在图像识别中的最新进展与实践案例