[command]:<>(项目名称 : PyQt5)

[command]:<>(文件名称 : QListWidget.md)

[command]:<>(创建日期 : 2018 年 11 月 07 日)

[command]:<>(创建时间 : 00:41)

使用 QListWidet 创建列表

作者: 八月未见 博客: https://www.cnblogs.com/jmtm/

创建列表:

list_widget = QListWidget()

插入项目:

直接添加文字:

# 在末尾添加:
list_widget.addItem("Item") items = ["Item - 1", "Item - 2"]
list_widget.addItems(items) # 在指定行添加:
list_widget.insertItem(0, "Item") items = ["Item - 1", "Item - 2"]
# 从第 1 行开始添加:
list_widget.insertItems(1, items)

举个栗子:

# 创建列表:
list_widget = QListWidget()
item_list = []
for i in range(20):
item_list.append("Item - " + str(i))
# 向列表添加项目:
list_widget.addItems(item_list)

效果如下:\

添加 item :

使用 QtWidgets.QListWidgetItem 创建项目

# 创建一个 item :
item = QListWidgetItem()
item.setIcon(QIcon("programme.png"))
item.setText("Item")
list_widget.addItem(item)

将项目添加到列表:

# 直接添加:
QListWidgetItem(QIcon("icon.png"), "Item", list_widget) list_widget.addItem(item) list_widget.insertItem(0, item)

栗子来了:

QListWidgetItem(QIcon("laugh.png"), "Item - 1", list_widget)

item = QListWidgetItem()
item.setIcon(QIcon("programme.png"))
item.setText("Item - 2")
list_widget.insertItem(0, item)

效果如图: \

编辑项目:

当前选项:

设置当前选项:

# 通过项目来设置当前选项:
list_widget.setCurrentItem(item) # 通过行来设置当前选项:
list_widget.setCurrentRow(3)

获取当前选项:

# 获取当前选项:
current_item = list_widget.currentItem() # 获取当前行:
current_row = list_widget.currentRow()

编辑选项:

# 开始编辑:
list_widget.openPersistentEditor(current_item) # 结束编辑:
list_widget.closePersistentEditor(current_item)

删除选项:

# 删除第四行:
list_widget.takeItem(4) # 移除选项上的其他组件:
# 注意:这不会删除选项,仅仅移除选项上的其他组件(如:Label、LineEdit、等)。
list_widget.removeItemWidget(current_item) # 移除所有选项:
# 注意:这会让列表变成一片空白。
list_widget.clear()

选项数量:

list_widget.count()

在选项上显示组件:

# 如果你这么做了将会无法删除此选项:
list_widget.setItemWidget(item, QLabel("这是一个 Label !"))

查找选项:

# 在所有选项中查找有字符 4 的选项,并返回数组:
list_widget.findItems("4", Qt.MatchContains) # 通过行找到选项:
# 注意:第一行是 0 。
list_widget.item(3)

隐藏选项:

list_widget.setRowHidden(2, True)

参考资料:QListWidget — Qt for Python (Technology Preview)

【PyQt5 学习记录】011:使用 QListWidet 创建列表的更多相关文章

  1. 【PyQt5 学习记录】009:批量创建组件并查找

    这里需要在创建组件时使用 setObjectName() 为其添加 objectName 属性,再通过 findChild() 或者 findChildren() 函数来查找. 举个栗子,批量创建10 ...

  2. ROS学习记录(一)————创建简单的机器人模型smartcar

    这是我在古月居上找的(http://www.guyuehome.com/243),但直接运行的话,没办法跑起来,我也是查了好多博客和日志,才实现最后的功能的,所以,记录下来,以备后用吧,也欢迎其他和我 ...

  3. 【PyQt5 学习记录】001:第一个界面

    PyQt5 的安装很简单: pip3 install PyQt5 然后就是写一个最简单的界面试试手: import sys from PyQt5.QtWidgets import QApplicati ...

  4. ROS学习记录(三)————创建一个简单的发布节点和订阅节点

    暑假在家有些懈怠,不,非常懈怠- -||!良心已经发痛了,想快些补回原来的进度,但忽然发现,中断了一段时间再重新去学习,有的地方连最基本的符号都忘记了 ,这次特意弄个最最基础的,恢复一下,以前的进度. ...

  5. 【PyQt5 学习记录】010:QSplitter

    import sys from PyQt5.QtWidgets import (QApplication, QWidget, QSplitter, QTextEdit, QPushButton, QL ...

  6. 【PyQt5 学习记录】006:重写窗口事件及QMessageBox

    #!/usr/bin/env python import sys from PyQt5.QtWidgets import (QApplication, QMainWindow, QMessageBox ...

  7. 【PyQt5 学习记录】005:QMainWindow 及状态栏、菜单栏和工具栏

    #!/usr/bin/env python import sys from PyQt5.QtWidgets import (QApplication, QMainWindow, QWidget, QA ...

  8. 【PyQt5 学习记录】004:简单QThread笔记

    在文本编辑框中每隔几秒添加一行文本,代码如下: #!/usr/bin/python3 # -*- coding:utf-8 -*- import sys from PyQt5.QtWidgets im ...

  9. 个人学习记录-Cpp基础-成员初始化列表

    Translator     Translator     参考链接: https://blog.csdn.net/XIONGXING_xx/article/details/115553291http ...

随机推荐

  1. StormUI详解

    StormUI由Cluster Summary,topology summary,supervisor summary,Nimbus Configuration四部分组成,如下图所示: Cluster ...

  2. innodb 源码分析 --锁

    innodb引擎中的锁分两种 1)针对数据结构, 如链表 互斥锁 读写锁 http://mysqllover.com/?p=425 http://www.cnblogs.com/justfortast ...

  3. 八、Linux上常用网络操作

    1. 主机名配置 hostname 查看主机名 hostname xxx 修改主机名 重启后无效 如果想要永久生效,可以修改/etc/sysconfig/network文件 2. IP地址配置 set ...

  4. android开发分辨率适配总结

    重要概念 什么是屏幕尺寸.屏幕分辨率.屏幕像素密度? 什么是dp.dip.dpi.sp.px?他们之间的关系是什么? 什么是mdpi.hdpi.xdpi.xxdpi?如何计算和区分? 在下面的内容中我 ...

  5. linux 编译安装amqp

    背景: 下面的内容是我根据网上博客小松的文章 https://www.phpsong.com/2223.html 做的修改,因为我走到make 编译amqp这步报错 最开始报下面的这个错误,是因为要安 ...

  6. 解析ASP.NET Mvc开发之删除修改数据 分类: ASP.NET 2014-01-04 23:41 3203人阅读 评论(2) 收藏

    目录: 从明源动力到创新工场这一路走来 解析ASP.NET WebForm和Mvc开发的区别 解析ASP.NET 和Mvc开发之查询数据实例 解析ASP.NET Mvc开发之EF延迟加载 ------ ...

  7. Android 开发工具类 26_getFile

    从网络获取可执行文件 public void getFile() throws Exception{ // 首先得到请求的路径 String urlpath = "http://ftpcnc ...

  8. protocol buffer开发指南

    ProtoBuf 是一套接口描述语言(IDL)和相关工具集(主要是 protoc,基于 C++ 实现),类似 Apache 的 Thrift).用户写好 .proto 描述文件,之后使用 protoc ...

  9. 【广州.NET社区推荐】.NETCore 平台上的日志集成组件 TomatoLog

    TomatoLog简介 TomatoLog 是一套在 .NETCore 平台上最简单易用的日志集成组件,具有高度灵活的使用方式,完全可定义配置的可扩展性,使用异步写入,业务完全解耦,客户端的一键安装. ...

  10. Base64加密解密工具类

    使用Apache commons codec类Base64进行加密解密 maven依赖 <dependency> <groupId>commons-codec</grou ...