【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列。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vulnhub靶场【Hogwarts】之bellatrix

前言 靶机:hotwarts-dobby,ip地址为192.168.1.69 攻击:kali,ip地址为192.168.1.16 都采用虚拟机,网卡为桥接模式 主机发现 使用arp-scan -l或netdiscover -r 192.168.1.1/24扫描发现主机 信息收集 使用nmap扫描端…

Kerberos用户认证-数据安全-简单了解-230403

hadoop安全模式官方文档:https://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-common/SecureMode.html kerberos是什么 kerberos是计算机网络认证协议,用来在非安全网络中,对个人通信以安全的手段进行身份认证。 概念&#…

2025:OpenAI的“七十二变”?

朋友们,准备好迎接AI的狂欢了吗?🚀 是不是跟我一样,每天醒来的第一件事就是看看AI领域又有什么新动向? 尤其是那个名字如雷贯耳的 OpenAI,简直就是AI界的弄潮儿,一举一动都牵动着我们这些“AI发…

有什么AI辅助阅读文献工具推荐?

AI的发展速度非常快,在很多方面都已经可以提供货真价实的辅助能力。 比如AI辅助阅读方面,可以获取、分析和理解大量文献资料。这可以帮助我们快速浏览和理解PDF文件和其他文档,提高我们的工作效率和学习效率,达到降本增效。 作为…

目标检测,语义分割标注工具--labelimg labelme

1 labelimg labelimg可以用来标注目标检测的数据集, 提供多种格式的输出, 如Pascal Voc, YOLO等。 1.1 安装 pip install labelimg1.2 使用 命令行直接输入labelimg即可打开软件主界面进行操作。 使用非常简单, 不做过细的介绍&#xff0…

30天开发操作系统 第 10 天 -- 叠加处理

前言 得益于昨天的努力,我们终于可以进行内存管理了。不过仔细一看会注意到,bootpack.c都已经有254行了。笔者感觉这段程序太长了,决定整理一下,分出一部分到memory.c中去。(整理中)…好了,整理完了。现在bootpack.c变…

C语言性能优化:从基础到高级的全面指南

引言 C 语言以其高效、灵活和功能强大而著称,被广泛应用于系统编程、嵌入式开发、游戏开发等领域。然而,要写出高性能的 C 语言代码,需要对 C 语言的特性和底层硬件有深入的了解。本文将详细介绍 C 语言性能优化的背后技术,并通过…

unity学习4:git和SVN的使用差别

目录 1 svn 1.1 操作逻辑 1.2 对应工具 1.3 SVN避免冲突的好习惯 2 git 2.1 git的基础操作逻辑 2.1.1 commit时,提交文件之外的其他文件需要pull 2.1.2 commit时,发现要提交的本地文件和服务器的文件冲突了 2.1.3 pull 时 2.2 对应工具 2.3 …

2024 年博客总结

2024年 我做了个Hexo博客 ,博客地址为:https://blog.mybatis.io。 2024 年发布的文章 一共发布了 31 篇博客,平均一个月 2.6 篇。 Ollama 导入自定义模型 阅读数/评论数: 7433/5Spring AI 使用本地 Ollama Embeddings 阅读数/评论数: 5311…

Python中PDF转Word的技术

Python PDF转Word技术概述 在日常办公和数据处理中,经常需要将PDF文档转换为Word文档,以便进行编辑、修改或格式调整。Python作为一种强大的编程语言,提供了多种库和工具来实现这一功能。以下是对Python中PDF转Word技术的详细介绍。 一、技…

vue3+ts+element-plus 表单el-form取消回车默认提交

问题描述:在表单el-form中的el-input中按回车后,页面会刷新,url也会改变, 回车前: 回车后: 相关代码: 解决方法1:在 el-form 上阻止默认的 submit 事件,增加 submit.pre…

【数据结构05】排序

系列文章目录 【数据结构05】排序 . 【算法思想04】二分查找 文章目录 系列文章目录[toc] 1. 基本思想与实现1.1 插入类排序1.1.1 直接插入排序(*)1.1.2 折半插入排序1.1.3 希尔排序(*) 1.2 交换类排序1.2.1 冒泡排序&#xff08…

QT----------文件系统操作和文件读写

一、输入输出设备类 功能: Qt 提供了一系列的输入输出设备类,用于处理不同类型的 I/O 操作,如文件、网络等。 二、文件读写操作类 QFile 类: 提供了对文件的读写操作,可以打开、读取、写入和关闭文件。示例&#x…

Qt自定义步骤引导按钮

1. 步骤引导按钮 实际在开发项目过程中,由一些流程比较繁琐,为了给客户更好的交互体验,往往需要使用step1->step2这种引导对话框或者引导按钮来引导用户一步步进行设置;话不多说,先上效果 2. 实现原理 实现起来…

《Java核心技术II》流中的filter、map和flatMap方法

filter、map和flatMap方法 filter filter通过转换产生过滤后的新流,将字符串流转化为只包含长单词的另一个流。 List words ...; Stream longWords words.stream().filter(w->w.length()>12) filter类型是Predicate(谓词,表示动作)类型对象&#xff0c…

Junit4单元测试快速上手

文章目录 POM依赖引入业务层测试代码Web层测试代码生成测试类文件 在工作中我用的最多的单元测试框架是Junit4。通常在写DAO、Service、Web层代码的时候都会进行单元测试&#xff0c;方便后续编码&#xff0c;前端甩锅。 POM依赖引入 <dependency><groupId>org.spr…

FPGA自学之路:到底有多崎岖?

FPGA&#xff0c;即现场可编程门阵列&#xff0c;被誉为硬件世界的“瑞士军刀”&#xff0c;其灵活性和可编程性让无数开发者为之倾倒。但谈及FPGA的学习难度&#xff0c;不少人望而却步。那么&#xff0c;FPGA自学之路到底有多崎岖呢&#xff1f; 几座大山那么高&#xff1f;…

【Leecode】Leecode刷题之路第97天之交错字符串

题目出处 97-交错字符串-题目出处 题目描述 个人解法 思路&#xff1a; todo代码示例&#xff1a;&#xff08;Java&#xff09; todo复杂度分析 todo官方解法 97-交错字符串-官方解法 方法1&#xff1a;动态规划 思路&#xff1a; class Solution {public boolean isInte…

【微服务】【Sentinel】认识Sentinel

文章目录 1. 雪崩问题2. 解决方案3. 服务保护技术对比4. 安装 Sentinel4.1 启动控制台4.2 客户端接入控制台 参考资料: 1. 雪崩问题 微服务调用链路中的某个服务故障&#xff0c;引起整个链路中的所有微服务都不可用&#xff0c;这就是雪崩。动图演示&#xff1a; 在微服务系统…

使用 Three.js 创建几何体粒子效果

今天,带大家一起看下如何将几何体由粒子组成的效果。 通常情况下&#xff0c;Three.js 中的几何体材质会为每个面赋予一种颜色&#xff0c;这样的结果比较常见&#xff0c;如下图所示&#xff1a; 然而&#xff0c;通过将几何体由粒子组成&#xff0c;我们可以实现更加酷炫和…