PyQt(Python+Qt)学习随笔:model/view架构中支持QListView列表中展示图标的两种方法
2024-08-23 06:37:09
在QListView列表视图中的项不但可以展示文字,也可以展示图标和复选框,同时可以指定项是否可以拖拽、选择、编辑。有两种方法支持在项中展示图标,一种是使用QStandardItem创建项时通过QIcon传递图标文件参数,一种是使用QStandardItem()创建空项后通过setData指定图标文件为Qt.DecorationRole角色的数据。
1、使用QStandardItem(QIcon icon, str text)创建项
下面的代码支持将指定目录的图象文件的文件名和图象在视图中展示:
def initIconModel(self):
self.model = QStandardItemModel()
ICon1 = QStandardItem(QIcon(r"F:\学习\python\资源\图像文件\add.png"),'add.png')
ICon2 = QStandardItem(QIcon(r"F:\学习\python\资源\图像文件\application_windows_add.png"), 'application_windows_add.png')
ICon3 = QStandardItem(QIcon(r"F:\学习\python\资源\图像文件\save.png"), 'save.png')
ICon4 = QStandardItem(QIcon(r"F:\学习\python\资源\图像文件\search.png"), 'search.png')
ICon5 = QStandardItem(QIcon(r"F:\学习\python\资源\图像文件\stop.gif"), 'stop.gif')
self.model.appendRow(ICon1)
self.model.appendRow(ICon2)
self.model.appendRow(ICon3)
self.model.appendRow(ICon4)
self.model.appendRow(ICon5)
self.listView.setModel(self.model)
运行后的界面初始化截图如下:
2、使用QStandardItem()创建空项后通过setData指定图标文件为Qt.DecorationRole角色的数据
使用项的setData( QtCore.QVariant(icon), Qt.DecorationRole)方法,对应数据角色使用 Qt.DecorationRole。示例代码:
def initIconModel(self):
self.model = QStandardItemModel()
ICon1 = QStandardItem('add.png')
ICon1.setData(QtCore.QVariant(QIcon(r"F:\学习\python\资源\图像文件\add.png")),Qt.DecorationRole)
ICon2 = QStandardItem('save.png')
ICon2.setData(QtCore.QVariant(QIcon(r"F:\学习\python\资源\图像文件\save.png") ),Qt.DecorationRole)
self.model.appendRow(ICon1)
self.model.appendRow(ICon2)
self.listView.setModel(self.model)
运行截图:
其实还有个类似的方法,就是使用model的setData( QModelIndex,QtCore.QVariant(icon), Qt.DecorationRole)方法,当选择操作时要更改图标文件可以使用这种方法。只要在方法中获取到modelIndex就可以调用该方法。
老猿Python,跟老猿学Python!
最新文章
- 关于纠正 C/C++ 之前在函输内改变 变量的一个错误想法。
- 【bzoj1059】 ZJOI2007—矩阵游戏
- JavaScript之Array类型
- 借助LinkedHashMap实现基于LRU算法缓存
- ThinkPHP 分页类的使用及退出功能的实现
- EL表达式中获取list长度
- 06day1
- The Boost C++ Libraries
- Keil C调试经验
- queue STL
- [leetcode-506-Relative Ranks]
- 【grunt】grunt 基础学习
- Elasticsearch常用基础操作
- 修改XCode默认工程为使用Xib
- InkImageDataSetGenerator-开源一个可用于机器学习的书写轨迹图片生成的小工具
- EntityFramwork 七七八八
- Android面试题目整理与解说(二)
- lazy-load-img.js 源码 学习笔记及原理说明
- python的一些基本概念知识和面试题
- 致研究者:2018 AI 研究趋势
热门文章
- 5.MVCC
- 【java】校验当前时间是否在规定的时间内
- Spider--补充--selenium的使用
- S5830 android 2.3.4和2.3.7
- sk_buff结构--转载
- WIN10下安装python3.7.2出现“尝试创建C:\Users\XX\AppData\Roaming\Microsoft\Installer时出错”
- 支持jewel版本的calamari
- linux系统克隆系统盘
- IAR_STM32_BootLoader
- Windows SMBv3 CVE-2020-0796 漏洞分析和l漏洞复现