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

65常用控件_QListWidget的使用

目录

代码示例:使用ListWidget

List Widget
使⽤ QListWidget 能够显⽰⼀个纵向的列表. 形如:
每个选项都可以被选中.
列表中的每个元素/每一项就称为是一个Item
更具体的说,通过QListWidgetItem类表示的~~
核⼼属性
属性说明
currentRow当前被选中的是第几行
count一共有多少行
sortingEnabled是否允许排序
isWrapping是否允许换行
itemAlignment元素的对齐方式
selectRectVisible被选中的元素矩形是否可见
spacing元素之间的间隔

核⼼⽅法 

方法说明
addItem(const QString& label)列表中添加元素
addItem(QListWidgetItem *item)列表中添加元素
currentItem()返回 QListWidgetItem* 表示当前选中的元素
setCurrentItem(QListWidgetItem* item)设置选中哪个元素
setCurrentRow(int row)设置选中第几行的元素
insertItem(const QString& label, int row)在指定的位置插入元素
insertItem(QListWidgetItem *item, int row)在指定的位置插入元素
item(int row)返回 QListWidgetItem* 表示第 row 行的元素
takeItem(int row)删除指定行的元素,返回 QListWidgetItem* 表示是哪个元素被删除了

 核⼼信号

方法说明
currentItemChanged(QListWidgetItem* current, QListWidgetItem* old)选中不同元素时会触发,参数是当前选中的元素和之前选中的元素
currentRowChanged(int)选中不同元素时会触发,参数是当前选中元素的行数
itemClicked(QListWidgetItem* item)点击某个元素时触发
itemDoubleClicked(QListWidgetItem* item)双击某个元素时触发
itemEntered(QListWidgetItem* item)鼠标进入元素时触发

在上述介绍中, 涉及到⼀个关键的类, QListWidgetItem .
这个类表⽰ QListWidget 中的⼀个元素.
核⼼⽅法如下, 本质上就是⼀个 "⽂本+图标" 构成的
方法说明
setFont设置字体
setIcon设置图标
setHidden设置隐藏
setSizeHint设置尺寸
setSelected设置是否选中
setText设置文本
setTextAlignment设置文本对齐方式

代码示例:使用ListWidget


1)在界面上创建一个ListView,右键=>变形为=>ListWidget,再创建一个lineEdit和两个按钮.
注意:ListWidget是ListView的子类,功能比ListView更丰富.咱们使用
ListWidget即可.

2) 编写 widget.cpp, 在构造函数中添加初始元素
3) 编写 listWidget 的 slot 函数
此处需要判定 current previous ⾮空. 初始情况下是没有元素选中的, 就导致这俩指针可
能是 NULL
这⾥需要给 widget.h 前⾯加上 #include <QListWidgetItem>

 4) 编写按钮的 slot 函数

5) 执⾏程序, 观察效果. 可以新增元素, 选中元素, 删除元素.

 

此处的row参数就表示插入完毕之后新的元素在第几行.
把新元素插入到第几行之前~~

你超过了第二的选手,你是第几??

takeltem
take 也是用来表示"删除”术语
erase
remove
delete
take
图形化界面中,右键QListWidget
选择编辑项目~就可以直接添加内容
如果这里初始内容是固定的,此时你通过哪种方式来初始化都可以
如果这里的内容是不固定的,要通过读取文件/读取网络来构造数据~~
就需要通过代码的方式来添加了~~
http://www.xdnf.cn/news/9864.html

相关文章:

  • 学习路之PHP--easyswoole操作数据库
  • 深入解析分销商城系统的核心特点
  • 本地化AI编程革命:在效率洪流中重掌创造主权
  • 嵌入式学习笔记 - freeRTOS同优先级任务时间片抢占的实现
  • 吉林大学操作系统上机实验五(磁盘引臂调度算法(scan算法)实现)
  • FreeRTOS---任务创建与删除
  • python小记(十六):Python 中 os.walk:深入理解与应用实践
  • 解释Java中wait和sleep方法的不同?
  • Vue-Router 动态路由的使用和实现原理
  • 利用candence17.4 ORCAD进行RC仿真
  • 报错SvelteKitError: Not found: /.well-known/appspecific/com.chrome.devtools.json
  • 2023-ICLR-ReAct 首次结合Thought和Action提升大模型解决问题的能力
  • 用户隐私如何在Facebook的大数据中得到保护?
  • 5.29 打卡
  • Glide源码解析
  • STM32F407VET6学习笔记7:Bootloader跳转APP程序
  • 《仿盒马》app开发技术分享-- 订单列表页(端云一体)
  • 2025年机械化设计制造与计算机工程国际会议(MDMCE 2025)
  • Redis--缓存击穿详解及解决方案
  • 全志V853挂载sd卡
  • 多部手机连接同一wifi的ip一样吗?
  • MC0309魔法项链
  • 多模型数据库(Multi-Model Database)深度解析
  • EasyFileCount(文件查重工具) v3.0.5.1 便携版
  • 有关用easyExcel批量导入excel入库慢的调优记录
  • 深入了解linux系统—— 库的制作和使用
  • 高端装备制造企业如何选择适配的项目管理系统提升项目执行效率?附选型案例
  • Java-代码段-http接口调用自身服务中的其他http接口(mock)-并建立socket连接发送和接收报文实例
  • 生益的高速PCB板材有哪些
  • (二)开启深度学习动手之旅:先筑牢预备知识根基