Qt扫盲-QListWidget理论总结

news2024/11/25 3:06:31

QListWidget理论总结

    • 1. 概念
    • 2. 添加列表项
    • 3. 列表其他属性
    • 4. 常用信号
    • 5. 槽函数
    • 6. QListWidgetItem 简述

1. 概念

QListWidget 是一个继承自 QListView 的类,其实就是 QListView 的一个很经典的 列表 交互控件,在QListWidget 里面提供了非常方便的基于 每一个 QListWidgetItem 的 管理 类,从添加、选择、删除 列表子Item到 QListWidget 里,都是封装的非常完善的。对于 每一个列表项的样子的话,是得靠QListWidgetItem 自己设置的,比如说文字对齐啊,背景大小、图标之类的。

如果要使用更加灵活的方式的话,最好还是使用 QListView 来显示,QListWidget 也不能显示过量的数据,过量数据的时候性能很不好。也不够灵活,但是一般情况下还是够用的哈。
在这里插入图片描述

QListWidget 的构造方法是和普通控件是一样的。

QListWidget *listWidget = new QListWidget(this);

2. 添加列表项

有两种方法可以将Item添加到列表中:

  1. 可以使用QListWidget 作为其父部件来构造它们
  2. 或者可以在没有父部件的情况下构造它们并稍后添加到列表中。
    如果在构造Item时QListWidget 已存在,则第一种方法更易于使用:
new QListWidgetItem(tr(“Oak”), listWidget);
new QListWidgetItem(tr(“Fir”), listWidget);
new QListWidgetItem(tr(“Pine”), listWidget);

如果您需要将新Item插入到列表中的特定位置,则应在没有父部件的情况下构造它。然后应该使用 insertItem() 函数将其放置在列表中。QListWidget 将获得Item的所有权。

QListWidgetItem *newItem = new QListWidgetItem;
newItem->setText(itemText);
listWidget->insertItem(row, newItem);

对于多个Item,可以改用 insertItems() 。

3. 列表其他属性

QListWidget 的 selectionMode() 方法决定列表中可以同时选择多少个Item。同时 setSelectionMode() 就是来创建复杂的Item选择。

  1. 列表中的项数是使用 count() 函数确定。
  2. 要从列表中删除 Item,请使用 takeItem() 。
  3. 列表中的当前项可以使用 currentItem() 找到,并使用 setCurrentItem() 进行更改。用户还可以通过使用键盘导航或单击其他Item来更改当前Item。
  4. 是否可用排序用 isSortingEnabled() 来确定,当然可呀用 setSortingEnabled(bool enable) 同样也可以设置
  5. findItems() 来查找 满足条件的 item

4. 常用信号

信号名含义
currentItemChanged(QListWidgetItem *current, QListWidgetItem *previous)发生选择项切换时
currentRowChanged(int currentRow)选择项的 选择行数改变时
currentTextChanged(const QString &currentText)就是Item 项的文字改变,前提是 Item 可以编辑哈
itemActivated(QListWidgetItem *item)被激活时发出信号。Item被激活当用户单击或双点击的时候, 这具体是取决于系统配置。当用户按下激活键(在Windows和X11这是返回键,在Mac OS X Command + O) 也会激活。
itemChanged(QListWidgetItem *item)当item 的数据改变时 ,可能是 文字被编辑了,图标变了,被checkedl了
itemClicked(QListWidgetItem *item)就是item被单击
itemDoubleClicked(QListWidgetItem *item)就是item被双击
itemEntered(QListWidgetItem *item)就是鼠标进入,一般不用
itemPressed(QListWidgetItem *item)就是item被按下了
itemSelectionChanged()就是选择项的时候发生改变了,一般会配合 selectedItems() 来获取被选择的对象。

5. 槽函数

信号名含义
clear()移除所有的Item
scrollToItem()让 列表滚动到指定的 Item 项的位置,一般会和 Search 的时候 配合使用

6. QListWidgetItem 简述

QListWidgetItem 表示 QListWidget 中的单个Item。每个Item可以包含多条信息,并将适当地显示它们。

其实知道 QListWidgetItem 能显示并编辑文本、还能check 就够用了。

QListWidgetItem 通常用于显示 文本 text() 和 图标 icon () 。这些是使用 setText() 和 setIcon() 函数设置的。文本的外观可以使用 setFont() 、setForeground() 和 setBackground() 进行自定义。列表项中的文本可以使用 setTextAlignment() 函数对齐。工具提示、状态提示和“这是什么?”帮助可以添加到使用 setToolTip() 、setStatusTip() 和 setWhatsThis() 的列表项中。
默认情况下,Item是 enabled, selectable, checkable的,并且配置 成可拖放、可编辑、可点击 check 的。这都是属于Item 的标志。

每个Item的标志可以通过使用适当的值调用setFlags() 来更改(参见Qt::ItemFlags)。可以使用 setCheckState() 函数检查、取消选中和部分检查可检查的Item。相应的 checkState() 函数指示Item的当前检查状态。
常用的标志像下面

标志名含义
Qt::NoItemFlags完全禁用
Qt::ItemIsSelectableitem可被选中
Qt::ItemIsEditableitem可被编辑
Qt::ItemIsDragEnableditem可被 拖住
Qt::ItemIsDropEnableditem可被 放置
Qt::ItemIsUserCheckableitem可用 check 的类似 QCheckBox
Qt::ItemIsEnableditem可用不

isHidden() 函数可用于确定Item是否隐藏。要隐藏Item,请使用 setHidden() 。

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

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

相关文章

银树开花精美甘特图:VARCHART_XGantt_5.2_167_ActiveX

增强您的计划用户体验 使用交互式甘特图提供惊人的视觉调度体验 与时间和资源相关的计划数据(例如工作、任务、订单、活动和能力)最好显示在甘特图中。 在智能甘特图中,计划人员可以随手采取纠正措施。 加快您的开发并 创建引人入胜、易于使用…

爬虫学习-深入了解爬虫

爬虫深入 使用场景分类 通用爬虫:抓取系统的重要组成部分,抓取的是一整张页面数据聚焦爬虫:建立在通用爬虫的基础之上,抓取的是页面中特定的局部内容增量式爬虫:检测网站中数据更新的情况,只会抓取网站中最…

一起学习用Verilog在FPGA上实现CNN----(三)激活层设计

1 激活层设计 LeNet-5网络的激活函数是双曲正切函数(TanH),项目中tanh函数模块由完整的层UsingTheTanh构成,该层由较小的处理单元HyperBolicTangent组成 1.1 HyperBolicTangent 处理单元HyperBolicTangent,对每个输入执行Tanh操作&#xf…

jsp+ssm计算机毕业设计动物救助平台【附源码】

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: JSPSSM mybatis Maven等等组成,B/S模式 Mave…

实训任务4:Hadoop综合操作

文章目录1. 启动Hadoop服务2. 创建文本文件3. 上传文本文件4. 显示文件内容5. 完成排序任务6. 计算最大利润和平均利润1. 启动Hadoop服务 在master虚拟机上执行命令:start-all.sh 2. 创建文本文件 在master虚拟机上创建本地文件students.txt 李晓文 女 20 张晓航 男…

【Redis集群专题】「集群技术三部曲」分析一下相关的Redis集群模式下的脑裂问题(问题篇)

技术格言 世界上并没有完美的程序,但是我们并不因此而沮丧,因为写程序就是一个不断追求完美的过程。 什么是脑裂 字面含义 首先,脑裂从字面上理解就是脑袋裂开了,就是思想分家了,就是有了两个山头,就是有…

电脑调用 iPhone 摄像头全过程(iVCam)

最近不是停课不停学吗,令人“深恶痛绝”的钉钉又进入了我们学生的生活。但是初中的网课相比小学的又增加了一个要求:全程摄像头拍摄。但是,我这笔记本没有摄像头啊!突然想起来好像手机的摄像头可以给电脑调用。话不多说&#xff0…

3D数学基础 学习笔记

左手坐标系:DX、3DMax 右手坐标系:OpenGL 世界坐标系、物体坐标系、摄像机坐标系 向量和点在数学上是等价的,向量是有大小和方向的有向线段,向量没有位置,只有大小和方向 向量运算: 零向量:…

【看源码】@Cacheable和@CacheEvict的原理, 批量key过期失效的原因分析

Cacheable和CacheEvict的坑, 批量key过期失效的原因分析前言测试代码源码put缓存时最终key的产生看不同情况下, 是否能匹配Evict过期缓存1. 没有入参没有指定key的情况2. 有入参的情况3. 配置了allEntries的情况总结补充前言 最近发现自己搭的一个项目返回的数据不太准确, 第一…

网工Python之路——Netmiko模块实验(思科)

小白网工的python之路 「Python 网络自动化」Netmiko 实验环境 我的实验环境是GNS3搭建拓扑图,用云桥接到在VMware Workstation 16运行的CentOS 7, CentOS 7上搭建好了python3.8, 所有交换机已经预配好了SSH服务,ssh登录账号为python&…

paddle

paddle预测库 git config --global http.postBuffer 1048576000 git clone --recursive https://github.com/PaddlePaddle/Paddle.git 修改CMakeLists.txt mkdir build cd buildcmake -DWITH_CONTRIBOFF -DWITH_MKLOFF -DWITH_MKLDNNOFF -DWITH_TESTINGOFF -DCMAKE_BUILD_TY…

DBCO-PEG-Ferrocene,Ferrocene-PEG-DBCO,DBCO偶联修饰二茂铁

DBCO-PEG-Ferrocene ,Ferrocene-PEG-DBCO,二苯并环辛炔-聚乙二醇-二茂铁,DBCO偶联修饰二茂铁产品规格: 1.CAS号:N/A 2.分子量MV:1000、2000、3400、5000、10000、20000等可按需进行定制 3.包装规格&#xf…

数据结构与算法_空间复杂度

同时间复杂度一样,空间复杂度也是数学的函数表达式。 空间复杂度不是程序占用了多少 bytes的空间,因为这个也没太大意义,所以空间复杂度算的是运行的过程中临时的、额外的变量的个数。 空间复杂度计算规则基本跟实践 复杂度类似&#xff0c…

Flutter For App——一个简单的豆瓣APP

一个简单的豆瓣APP效果视频功能简述功能第三方库接口简述底部导航栏效果图实现初始化BottomNavigationBarItembottomNavigationBar切换页面导致bottomNavigationBar子页面重绘Top250榜单效果图实现Widget树FutureBuilder异常ListView上拉加载电影详情效果图实现高斯模糊网络数据…

设计模式原则 - 单一职责原则(一)

单一职责原则一 官方定义基本介绍二 案例演示普通方式实现解决方案解决方案一解决方案案例分析解决方案二解决方案案例分析案例总结三 注意事项&细节四 如何遵守单一职责原则?一 官方定义 单一职责原则(Single Responsibility Principle, SRP&#x…

用Spark写入Mysql的特别注意事项

相信有部分刚入门的小伙伴对于spark写入Mysql的过程不太熟悉。特意写一篇文章讲一下这个注意事项,以免“上大当” 我们先看一个小伙伴写的一段spark写入mysql的代码 public static void trans(SparkSession spark,String pro_table, String pro_url, String pro_dr…

微服务框架 SpringCloud微服务架构 服务异步通讯 52 惰性队列 52.1 消息堆积问题

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式,系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 服务异步通讯 文章目录微服务框架服务异步通讯52 惰性队列52.1 消息堆积问题52.1.1 消息堆积问题52 惰性队列 52.1 消息堆积问题 52.1.1 消…

11基于主从博弈理论的共享储能与综合能源微网优化运行研究(MATLAB程序)

参考文献: 基于主从博弈理论的共享储能与综合能源微网优化运行研究——帅轩越(2022电网技术) 主要内容; 代码主要做的是基于主从博弈理论的共享储能与综合能源微网优化运行研究,首先介绍了系统运行框架,分析了系统内…

一文了解各种高精度室内定位技术

在消费需求和创新技术驱动下,可穿戴设备和物联网产品的发展驶入了快车道,GNSS定位功能在无人驾驶、智能设备、资产追踪等日趋智能化中广泛应用,而随着万物互联时代的到临,物联网技术围绕人员、资产的室内位置服务需求也愈加强烈。…

vue使用

目录 路由History模式打包页面空白 项目放根目录 -- 配置 项目放二级目录 -- 配置 路由History模式打包页面空白 项目放根目录 -- 配置 router > index.js 修改 base const router new VueRouter({mode: history,// base: process.env.BASE_URL,base: /,routes, }) ngi…