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

【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.kler.cn/a/458918.html

相关文章:

  • [羊城杯 2024]1z_misc
  • javaEE-多线程进阶-JUC的常见类
  • 如何使用 JPA 实现分页查询并返回 VO 对象
  • openEuler ARM使用vdbench50407
  • Vue3 中的计算属性和监听属性
  • 复杂对象的创建与组装 - 建造者模式(Builder Pattern)
  • I2C(一):存储器模式:stm32作为主机对AT24C02写读数据
  • 2024年12月28日人工智能与科技新闻速递
  • 使用 MediaDevices API 录制和下载视频教程
  • 基于Spring Boot + Vue3实现的在线预约看房管理系统源码+文档
  • 软硬件开发相关标准汇总
  • 联邦协作训练大模型的一些研究进展
  • 【LC】3159. 查询数组中元素的出现位置
  • mac docker部署jar包流程
  • 循环服务器
  • [Bert] 提取特征之后训练模型报梯度图错误
  • Effective C++ 条款42:了解 typename 的双重意义
  • 玉米中的元基因调控网络突出了功能上相关的调控相互作用。\ca.19a5.R
  • vue项目利用webpack进行优化案例
  • 小米路由器开启SSH,配置阿里云ddns,开启外网访问SSH和WEB管理界面
  • SAP-MM-物资库存调度调剂清单
  • 深入探讨C++中的互斥锁管理:`std::lock_guard`与`std::unique_lock`
  • C++ 设计模式:模板方法(Template Method)
  • Zookeeper中version-2目录下存放数据
  • 生态碳汇涡度相关监测与通量数据分析实践技术应用
  • mysql一个表只能由一个自动递增列吗