pyq5 QTreeView 树形目录结构
文章目录
- 1、简介
- 2、简单实例显示本机文件结构
- 1)显示本机文件结构目录
- 2)功能实现
- 3、显示自定义文件结构
- 1)展示
- 2)功能代码
- 4、添加展开文件的点击事件
- 1)展示
- 2)、功能展示
- 5、文件节点的增删改
- 1)展示
- 2)、功能实现
1、简介
QTreeWidget 类实现了树形结构。
2、简单实例显示本机文件结构
1)显示本机文件结构目录
2)功能实现
#!/usr/bin/env python3'''【简介】PyQT5中 QTreeView 例子'''import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *if __name__ == '__main__':app = QApplication(sys.argv) #Window系统提供的模式 model = QDirModel() #创建一个QtreeView部件 tree = QTreeView() #为部件添加模式 tree.setModel(model) tree.setWindowTitle( "QTreeView 例子" ) tree.resize(640, 480) tree.show() sys.exit(app.exec_())
3、显示自定义文件结构
1)展示
2)功能代码
#!/usr/bin/env python3'''【简介】PyQT5中 QTreeWidget 例子'''import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import QIcon , QBrush , QColor
from PyQt5.QtCore import Qt class TreeWidgetDemo(QMainWindow): def __init__(self,parent=None):super(TreeWidgetDemo,self).__init__(parent)self.setWindowTitle('TreeWidget 例子')self.tree = QTreeWidget()# 设置列数self.tree.setColumnCount(2)# 设置头的标题self.tree.setHeaderLabels(['Key','Value'])# 设置根节点root= QTreeWidgetItem(self.tree)root.setText(0,'root')root.setIcon(0,QIcon("./images/root.png"))# 设置列宽self.tree.setColumnWidth(0, 150)### 设置节点的背景颜色#brush_red = QBrush(Qt.red)#root.setBackground(0, brush_red)#brush_green = QBrush(Qt.green)#root.setBackground(1, brush_green) # 设置子节点1child1 = QTreeWidgetItem(root)child1.setText(0,'child1')child1.setText(1,'ios')child1.setIcon(0,QIcon("./images/IOS.png"))child1.setCheckState(0, Qt.Checked) #设置选项已被选中状态# 设置子节点2child2 = QTreeWidgetItem(root)child2.setText(0,'child2')child2.setText(1,'')child2.setIcon(0,QIcon("./images/android.png"))# 设置子节点3,子节点2的子节点child3 = QTreeWidgetItem(child2)child3.setText(0,'child3')child3.setText(1,'android')child3.setIcon(0,QIcon("./images/music.png"))#为tree增加顶级项目self.tree.addTopLevelItem(root)# 结点全部展开self.tree.expandAll()self.setCentralWidget(self.tree) if __name__ == '__main__':app = QApplication(sys.argv)tree = TreeWidgetDemo()tree.show()sys.exit(app.exec_())
4、添加展开文件的点击事件
1)展示
2)、功能展示
#!/usr/bin/env python3'''【简介】PyQT5中 QTreeWidget 例子'''from PyQt5.QtWidgets import *
import sysclass TreeWidgetDemo(QMainWindow): def __init__(self,parent=None):super(TreeWidgetDemo,self).__init__(parent)self.setWindowTitle('TreeWidget 例子')self.tree = QTreeWidget()# 设置列数self.tree.setColumnCount(2)# 设置头的标题self.tree.setHeaderLabels(['Key','Value'])root= QTreeWidgetItem(self.tree)root.setText(0,'root')root.setText(1,'0')child1 = QTreeWidgetItem(root)child1.setText(0,'child1')child1.setText(1,'1')child2 = QTreeWidgetItem(root)child2.setText(0,'child2')child2.setText(1,'2')child3 = QTreeWidgetItem(root)child3.setText(0,'child3')child3.setText(1,'3') child4 = QTreeWidgetItem(child3)child4.setText(0,'child4')child4.setText(1,'4')child5 = QTreeWidgetItem(child3)child5.setText(0,'child5')child5.setText(1,'5')self.tree.addTopLevelItem(root)self.tree.clicked.connect( self.onTreeClicked ) #绑定点击事件self.setCentralWidget(self.tree) def onTreeClicked(self, qmodelindex):item = self.tree.currentItem()print("key=%s ,value=%s" % (item.text(0), item.text(1)))if __name__ == '__main__':app = QApplication(sys.argv)tree = TreeWidgetDemo()tree.show()sys.exit(app.exec_())
5、文件节点的增删改
1)展示
2)、功能实现
#!/usr/bin/env python3'''【简介】PyQT5中 QTreeWidget 例子'''import sys
from PyQt5.QtWidgets import *
#from PyQt5.QtGui import QIcon , QBrush , QColor
#from PyQt5.QtCore import Qt class TreeWidgetDemo(QWidget): def __init__(self,parent=None):super(TreeWidgetDemo,self).__init__(parent)self.setWindowTitle('TreeWidget 例子')operatorLayout = QHBoxLayout()addBtn = QPushButton("添加节点")updateBtn = QPushButton("修改节点")delBtn = QPushButton("删除节点") operatorLayout.addWidget(addBtn)operatorLayout.addWidget(updateBtn)operatorLayout.addWidget(delBtn)# 按钮的信号槽连接addBtn.clicked.connect(self.addTreeNodeBtn )updateBtn.clicked.connect(self.updateTreeNodeBtn )delBtn.clicked.connect(self.delTreeNodeBtn ) self.tree = QTreeWidget(self)# 设置列数self.tree.setColumnCount(2)# 设置头的标题self.tree.setHeaderLabels(['Key','Value'])root= QTreeWidgetItem(self.tree)root.setText(0,'root')root.setText(1,'0')child1 = QTreeWidgetItem(root)child1.setText(0,'child1')child1.setText(1,'1')child2 = QTreeWidgetItem(root)child2.setText(0,'child2')child2.setText(1,'2')child3 = QTreeWidgetItem(root)child3.setText(0,'child3')child3.setText(1,'3') child4 = QTreeWidgetItem(child3)child4.setText(0,'child4')child4.setText(1,'4')child5 = QTreeWidgetItem(child3)child5.setText(0,'child5')child5.setText(1,'5')self.tree.addTopLevelItem(root)self.tree.clicked.connect( self.onTreeClicked )mainLayout = QVBoxLayout(self);mainLayout.addLayout(operatorLayout);mainLayout.addWidget(self.tree); self.setLayout(mainLayout) #节点点击事件def onTreeClicked(self, qmodelindex):item = self.tree.currentItem()print("key=%s ,value=%s" % (item.text(0), item.text(1)))#添加节点def addTreeNodeBtn(self):print('--- addTreeNodeBtn ---')item = self.tree.currentItem()node = QTreeWidgetItem(item)node.setText(0,'newNode')node.setText(1,'10') # 节点更新def updateTreeNodeBtn(self):print('--- updateTreeNodeBtn ---')item = self.tree.currentItem()item.setText(0,'updateNode')item.setText(1,'20') #删除节点def delTreeNodeBtn(self):print('--- delTreeNodeBtn ---')item = self.tree.currentItem()root = self.tree.invisibleRootItem()for item in self.tree.selectedItems():(item.parent() or root).removeChild(item)if __name__ == '__main__':app = QApplication(sys.argv)tree = TreeWidgetDemo()tree.show()sys.exit(app.exec_())
文件参考:
PyQt 快速开发与实践
本人郑重声明,本博客所著文章、图片版权归权利人持有,本博只做学习交流分享所用,不做任何商业用途。访问者可將本博提供的內容或服务用于个人学习、研究或欣赏,不得用于商业使用。同時,访问者应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人的合法权利;如果用于商业用途,须征得相关权利人的书面授权。若以上文章、图片的原作者不愿意在此展示內容,请及时通知在下,將及时予以刪除。
pyq5 QTreeView 树形目录结构相关推荐
- Java实现遍历N级树形目录结构
最近挺忙,一直在做项目,然后有个树形目录结构需要返回给前端,这里给大家说一下实现的思路. 具体达到的效果类似: 一级目录A: 二级目录A: 三级目录: 四级目录: 文件.txt 二级目录B: 文件1. ...
- java遍历树_Java实现遍历N级树形目录结构
最近挺忙,一直在做项目,然后有个树形目录结构需要返回给前端,这里给大家说一下实现的思路. 具体达到的效果类似: 一级目录A: 二级目录A: 三级目录: 四级目录: 文件.txt 二级目录B: 文件1. ...
- Linux目录结构——树形目录结构
Linux目录结构--树形目录结构 根目录:所有目录分区.目录.文件等位置起点 整个树形目录结构中,使用独立的一个"/" 常见的子目录: /root /bin /boo ...
- android 树形目录结构的实现(包含源码)
1.效果如图 ,老板的需求: 1.各种群按照树形目录展开 2.点击列表可以收缩展开 3.选中后进行筛选 2.分析下思路 每个数据都应该有个根节点,也就是上级目录.确定了上级目录就可以找到当前数据对应的 ...
- linux树形目录结构存放,Linux目录结构
Linux下的文件系统为树形结构,入口为/ 树形结构下的文件目录: 无论哪个版本的Linux系统,都有这些目录,这些目录应该是标准的.各个Linux发行版本会存在一些小小的差异,但总体来说,还是大体差 ...
- vue 树形目录结构
原先使用的是Ztree,后来因为更多的定制化要求,还是手写一个算了 <template><div><menu-tree :nodes="nodes" ...
- Linux 文件系统的目录结构
1. / 文件系统的入口,最高一级目录: 2. /bin 基础系统所需要的命令位于此目录,是最小系统所需要的命令,如:ls, cp, mkdir等. 这个目录中的文件都是可执行的,一般的用户都可以使用 ...
- 5、Linux系统的目录结构
Windows目录结构 系统路径:C:\Windows 软件安装目录:一般放在D:\Linux目录逻辑上所有的目录只有一个顶点/ (根),/是所有目录的起点./根下面,类似的是一个倒挂着的树一样的层次 ...
- 4.1.3 OS之文件目录目录结构(单级-两级-多级-无环图)、索引节点FCB瘦身
文章目录 0.思维导图 1.文件控制块 对目录的操作 2.单级目录结构 3.两级目录结构 4.多级目录结构(树形目录结构) 5.无环图目录结构 6.索引节点(FCB的改进)瘦身 0.思维导图 1.文件 ...
- 【操作系统】文件管理(三)—— 文件的目录结构
[操作系统]文件管理(三)-- 文件的目录结构 一.文件控制块(FCB) 二.索引结点(FCB的改进) 三.目录结构 1. 单级目录结构 2. 两级目录结构 3. 多级目录结构(树形目录结构) 4. ...
最新文章
- 光伏电站或成辅助服务市场“输家”
- Dynamics CRM2013/2015 检索实体属性的两种方式
- Login failed with an access denied error.
- 计算机技术在办公自动化中的应用,计算机技术在办公自动化中的应用浅析.doc...
- html 前端分页代码怎么写,前端js写分页
- Ubuntu 16.04安装SQLite Browser操作SQLite数据库
- python找人_python之找最后一个人
- C#拾遗系列(5):泛型委托
- 怎样删除Weblogic Domain?
- 三个有用的SQL辅助工具
- ArcView Image Analyst v1.0.rar
- 易语言 Sqlite表.读字段值 失败的解决方法
- java的I/O流,开发教学第二章作业
- Android开发两年,我要跳槽去阿里巴巴了,做个阶段总结,flutterrow高度对齐
- Linux系统下LightDM详解
- HTML的基本结构标签(html,head,title,body)
- 【JZOJ A组】黑暗之魂(darksoul)
- 容联云:实现异步 手机短信验证码
- 零基础了解Https-https的安全策略
- BZOJ 4605: 崂山白花蛇草水 树套树 权值线段树套kdtree
热门文章
- WebService(一):工作原理
- 机械制图之平面图形的尺寸分析
- 用matlab实现灰色预测gm11模型,用MATLAB实现灰色预测GM11模型
- vultarget-a红日靶场全面解析(完整版)
- FOSSID(开源代码检测工具)
- office和flash计算机课程,Powerpoint和Flash制作教学课件技巧
- 驱动精灵w8ndows xp sp2,爱普生Epson TM-L60II打印机驱动官方正式版下载,适用于winxp,winvista,win7,win8,win10-驱动精灵...
- 将ip电话注册到服务器上,华为IP电话配置步骤.doc
- 最新Apicloud+Vue开发App专题(完整)
- 解决Python包下载慢/超时的方法