QListWidget 类使用教程

news2024/9/30 3:29:22

文章目录

  • 1、简介
  • 2、属性
  • 3、functions
    • 3.1、访问属性相关 function
    • 3.2、公共槽
    • 3.3、Signal
    • 3.4、其他方法

QT 官方文档参考地址:https://doc.qt.io/qt-5/qlistwidget.html

1、简介

moudleclass说明
PyQt5.QtWidgets
包含了一整套UI元素控件,用于建立符合系统风格的界面
QListWidget基于 Widget 的列表小部件

QListWidget是一个用于显示列表的Qt部件,它提供了一个类似于QListView所提供的列表视图,它可以显示文本、图像或自定义的部件项。它提供了一种方便的方式来管理和展示项目列表,并支持与这些项目相关的操作,如选择、拖放和排序。
在这里插入图片描述

主要功能:

  1. 显示项目:QListWidget用于显示项目列表。每个项目可以包含文本、图像或自定义的部件。

  2. 项目选择:用户可以通过单击或按下键盘上的上下箭头键来选择项目。可以选择单个项目或多个项目。

  3. 自定义项目视图:通过设置QListWidget的显示模式和布局,可以自定义项目在列表中的显示方式。例如,可以使用垂直或网格布局来显示项目。

  4. 拖放支持:QListWidget提供了内置的拖放支持,允许从列表中拖动项目或在列表中重新排序项目。

  5. 项目操作:可以对列表中的项目执行操作,如插入、删除、移动、清空等。

  6. 信号和槽机制:QListWidget提供了各种信号,用于捕获项目选择、双击、键盘事件等,以便执行相应的操作。

  7. 上下文菜单:可以为列表中的项目添加上下文菜单,以便在项目上右键单击时显示相关操作。

2、属性

1、count(类型:const int

此属性保存列表中的项数,包括任何隐藏项。

2、currentRow(类型:int

此属性保存当前项的行
根据当前的选择模式,还可以选择行。

3、sortingEnabled(类型:bool

此属性保存是否启用排序
如果此属性为true,则对列表启用排序;如果该属性为false,则不启用排序。
默认值为false。

:

3、functions

3.1、访问属性相关 function

1、int count() const

获取列表中的项数,包括任何隐藏项。

2、int currentRow() const

当前项的行
如果未选择,则返回 -1

3、void setCurrentRow(int row)

将当前行设置为指定的行

4、bool isSortingEnabled() const

是否启用排序

5、void setSortingEnabled(bool enable)

设置是否启用排序

3.2、公共槽

1、void clear()

删除视图中的所有项和选择项。

3.3、Signal

1、void itemClicked(QListWidgetItem *item)

当在小部件中的一个项目上单击鼠标按钮时(左键单击),该信号与指定的项目一起发出。

2、void itemPressed(QListWidgetItem *item)

当在小部件中的一个项目上按下鼠标按钮时(左键 / 右键 单击),该信号与指定的项目一起发出。

3、void itemDoubleClicked(QListWidgetItem *item)

当在小部件中的一个项目上双击鼠标按钮时,该信号与指定的项目一起发出。

3.4、其他方法

1、void addItem(const QString &label)

在列表小部件的末尾插入带有文本标签的项。
无法设置图标

2、void addItems(const QStringList &labels)

在列表小部件的末尾插入带有文本标签的多个项。
无法设置图标

3、void addItem(QListWidgetItem *item)

在列表小部件的末尾插入项目。
通过 item.setIcon(QIcon(QPixmap( icopath )))

from PyQt5.QtGui import *
from PyQt5.QtWidgets import *

listWidget = QListWidget(self)
item = QListWidgetItem(mp3filename)
item.setIcon(QIcon(QPixmap(r"E:\Private_Python\音乐播放器\图片\播放.ico")))
listWidget.addItem(item)

4、void closePersistentEditor(QListWidgetItem *item)

关闭指定项的持久编辑器

5、void openPersistentEditor(QListWidgetItem *item)

打开给定项的编辑器
编辑器在编辑后保持打开状态。

6、bool isPersistentEditorOpen(QListWidgetItem *item) const

关闭指定项的持久编辑器

7、QListWidgetItem * currentItem() const

返回当前项

8、void setCurrentItem(QListWidgetItem *item)

将当前项设置为item
除非选择模式为NoSelection,否则项目也会被选中。

9、QList<QListWidgetItem *> findItems(const QString &text, Qt::MatchFlags flags) const

使用给定标志查找具有与字符串文本匹配的文本的项

10、void insertItem(int row, const QString &label)

在列表小部件中按row指定的位置插入带有文本标签的项

11、void insertItems(int row, const QStringList &labels)

在列表小部件中按row指定的位置插入带有文本标签的多个项

12、QListWidgetItem * takeItem(int row)

从列表小部件的给定行中删除并返回项目;否则返回nullptr
从列表小部件中删除的项目将不会由Qt管理,并且需要手动删除

currentRow = ui.listWidget.currentRow()
item = ui.listWidget.takeItem(currentRow)
del item

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

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

相关文章

Hugging face下载的离线模型不会用?没关系,看这里

可能遇到的问题&#xff1a; 不知道大家有没有碰到这样的问题&#xff0c;想从hugging face 加载模型&#xff0c;使用其提供的接口做一个简单的demo,但是由于网络的原因没办法正常访问&#xff1a; (MaxRetryError("HTTPSConnectionPool(hosthuggingface.co, port443):…

【封装--限定符private--包】

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 封装访问限定符 private快捷键实现get和set 封装扩展之包如何导包怎么找包 自定义包方法: 总结 封装 访问限定符 private 什么是封装&#xff1f; 就像电脑&…

DC-8 靶机

DC_8 信息搜集 存活检测 详细扫描 后台网页扫描 网站信息搜集 访问不同的页面的时候 url 随之变化 尝试 sql 注入 在 url 后输入 验证 直接报数据库语法错误 漏洞利用 使用 sqlmap 工具 爆破数据库 sqlmap -u 10.4.7.153/?nid2 --dbs --batch成功爆破出两个数据库 d7db…

【数据结构】数组和字符串(一):矩阵的数组表示

文章目录 4.1 数组4.1.1 数组的存储和寻址4.1.2 一维数组的基本操作 4.2 矩阵4.2.1 矩阵的数组表示a. 矩阵的二维数组存储及其乘法运算b. 一维数组存储 4.1 数组 4.1.1 数组的存储和寻址 数组是一种用于存储多个相同类型元素的数据结构。在内存中&#xff0c;数组的元素是连续…

视频上的水印文字如何去掉?

嘿&#xff0c;大家好&#xff01;作为一个自媒体从业者&#xff0c;我相信大家都想知道如何去掉视频上的水印文字&#xff0c;想必大家和我一样每天都会在互联网寻找素材&#xff0c;而大部分图片或者视频都带有各种各样的水印&#xff0c;这给我的创作带来了不小的麻烦&#…

SQL Delete 语句(删除表中的记录)

SQL DELETE 语句 DELETE语句用于删除表中现有记录。 SQL DELETE 语法 DELETE FROM table_name WHERE condition; 请注意删除表格中的记录时要小心&#xff01;注意SQL DELETE 语句中的 WHERE 子句&#xff01; WHERE子句指定需要删除哪些记录。如果省略了WHERE子句&#xff…

【题解 单调队列优化dp】 简单的加法乘法计算题

题目描述&#xff1a; 分析&#xff1a; 由于对于每一步而言&#xff0c;我们都需要的是最小步数 所以我们很显然的可以写出一个dp方程&#xff1a; 设 f [ i ] f[i] f[i]表示达到i时的最小步数 我们有两种操作&#xff0c;也就是说我们可以通过一下两种方式转移过来&#xff…

前端开发实践:vue中用qrcode库将超链接生成二维码图片

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;CSDN领军人物&#xff0c;全栈领域优质创作者✌&#xff0c;阿里云社区专家博主&#xff0c;2023年6月csdn上海赛道top4。 &#x1f3c6;数年电商行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责…

VBA_MF系列技术资料1-212

MF系列VBA技术资料 为了让广大学员在VBA编程中有切实可行的思路及有效的提高自己的编程技巧&#xff0c;我参考大量的资料&#xff0c;并结合自己的经验总结了这份MF系列VBA技术综合资料&#xff0c;而且开放源码&#xff08;MF04除外&#xff09;&#xff0c;其中MF01-04属于定…

LinkedList概念+MyLinkedList的实现

文章目录 LinkedList笔记一、 LinkedList1.概念2.LinkedList的构造方法3.LinkedList的遍历 二、MyLinkedList的实现1.定义内部类2.打印链表、求链表长度、判断是否包含关键字3. 头插法和尾插法4.在任意位置插入5.删除结点6.清空链表 LinkedList笔记 一、 LinkedList 1.概念 L…

IAR For ARM 安装教程

电脑环境 安装包下载 1、官网下载 ①搜索 IAR ②切换产品&#xff0c;选择Arm ③选择IAR Embedded Workbench for Arm ④免费试用 2、网盘下载 EWARM-CD-8202-14838.exe(访问密码: 1666) https://url48.ctfile.com/f/33868548-961057458-611638?p1666 软件下载 1、点击安…

华为数通方向HCIP-DataCom H12-831题库(多选题:41-60)

第41题 下列哪些属于VLAN聚合的优点? A、增加了编址的灵活性 B、增加了可用的VLAN数量 C、减少了IP地址的浪费 D、实现Sub-VLAN间广播域的隔离 答案:ACD 解析: 各个Sub-VLAN作为一个独立广播域实现广播隔离,又节省了IP地址资源,提高了编址的灵活性 第42题 在进行结构化的…

【Java 进阶篇】Java Tomcat 入门指南

Java Tomcat&#xff08;通常简称 Tomcat&#xff09;是一个流行的开源Servlet容器&#xff0c;用于托管Java Web应用程序。它是Apache软件基金会的一部分&#xff0c;提供了一个稳定、可靠的环境来运行Java Servlets和JavaServer Pages&#xff08;JSP&#xff09;。本篇博客将…

mariadbmysql更改数据库默认存储路径

1.登录数据库查询默认存储位置 默认存储在/var/lib/mysql show variables like "%datadir%"; 2.先停止服务 systemctl stop mariadb 3.移动数据文件 mv /var/lib/mysql/ /home/ 4.修改服务配置 vim /etc/my.cnf.d/server.cnf5.在 [mysqld] 下面增加 datadir/ho…

4.2 QPainter的绘图接口介绍(下)

4.2 QPainter的绘图接口介绍(下) 上篇文章中我们举例介绍了drawRect、drawRoundRect、drawEllipse、drawArc、drawChord、drawPie这几个接口的用法,本篇文章继续讲解绘图的接口。 QPainter::drawText(绘制文字) 关于drawText的重载方法,我们可以将其分为两类来进行说明。…

基于Qt 的CAN Bus实现

# 简介 从 Qt5.8 开始,提供了 CAN Bus 类,假设您的 Qt 版本没有 CAN Bus,可以参考 Linux 应用编程来操控开发板的 CAN,目前我们主要讲解 Qt 相关的 CAN编程。其实 Qt 也提供了相关的 Qt CAN 的例子,我们也可以直接参考来编程。读者手上需要有测试 CAN 的仪器!否则写好程…

手机游戏定制研发手机软件开发

手机游戏定制研发是一个多阶段的过程&#xff0c;它使开发者能够根据客户的需求和创意&#xff0c;构建独特的游戏体验。这个领域是一个蓬勃发展的市场&#xff0c;因为手机游戏在全球范围内都备受欢迎。在本文中&#xff0c;我们将深入探讨手机游戏定制研发的主要步骤以及关键…

目标检测应用场景—数据集【NO.15】叶片虫害检测

写在前面&#xff1a;数据集对应应用场景&#xff0c;不同的应用场景有不同的检测难点以及对应改进方法&#xff0c;本系列整理汇总领域内的数据集&#xff0c;方便大家下载数据集&#xff0c;若无法下载可关注后私信领取。关注免费领取整理好的数据集资料&#xff01;今天分享…

python连接sqlserver

安装 pip install pyodbc 导入 import pyodbc 建立连接 con pyodbc.connect(DRIVER{SQL Server};SERVER192.168.202.173;DATABASEAIS20230802091529;UIDsa;PWDchief.cc1993) 游标 cursorcon.cursor() 查询 sql"select * from T_SAL_OUTSTOCK where FBillNoXSCKD…

GDB常用指令与调试汇总

文章目录 前言一、基础二、例子三、用gdb调试多线程程序 前言 GDB&#xff08;GNU Debugger&#xff09;是一个强大的调试工具&#xff0c;用于调试C、C等编程语言的程序。本文将介绍一些常用的GDB指令&#xff0c;以及通过例子演示如何使用这些指令进行程序调试。 一、基础 …