PyQt5 QTreeView树图
QTreeWidget
QTreeWidget 是继承了QTreeView
常用方法:
树形结构是通过QTreeWidget和 QTreeWidgetItem类实现的:
代码:
# -*- coding: utf-8 -*-import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *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,160)### 设置节点的背景颜色# 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"))# 设置子节点3child3 = QTreeWidgetItem(child2)child3.setText(0, 'child3')child3.setText(1, 'android')child3.setIcon(0, QIcon("./images/music.png"))self.tree.addTopLevelItem(root)# 结点全部展开self.tree.expandAll()self.setCentralWidget(self.tree)if __name__ == '__main__':app = QApplication(sys.argv)example = TreeWidgetDemo()example.show()sys.exit(app.exec_())
添加响应事件:
#!/usr/bin/env python3from 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_())
增加与删除:
#!/usr/bin/env python3import 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_())
使用QTreeView 读取系统:
代码:
#!/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_())
喜欢我博客的同学可以关注我博客,后期博客将加入更多的东西,让我们一起进步吧。
PyQt5 QTreeView树图相关推荐
- PyQt5 QTreeView
PyQt5 QTreeView QTreeView QTreeView import sys from PyQt5.QtWidgets import * from PyQt5.QtGui import ...
- PyQt5打开文件目录(QTreeView)并在QT界面输出文件目录并双击文件返回文件目录名
最近发现了一个挺厉害的人工智能学习网站,内容通俗易懂,风趣幽默,感兴趣的可以点击此链接进行查看:床长人工智能教程 废话不多说,请看正文! 打开整个文件目录 直接打开电脑的各个文件目录.显示出c盘,d盘 ...
- button 样式_实战PyQt5: 111-可以使用QSS样式表的部件
可以使用QSS样式表的部件 QSS样式表支持各种部件,属性,伪状态和子控件,从而可以实现定制部件的外观,下面我们将详细列出可以使用QSS样式表的部件: QAbstractScrollArea:所有派生 ...
- python制作好看的界面_【一点资讯】Python界面如何漂亮的展示树形结构,PyQt5控件之QTreeWidget详解 www.yidianzixun.com...
前面内容,我们介绍了关于PyQt5的一些常用高级控件的使用,为了更好的便于大家理解,我们通过一些案例进行了讲解.用户接口 用Python将电子表格Excel展示在界面中,PyQt5之QTableWid ...
- 【pyqt5】配置Qt Designer之【designer.exe的保存位置及ui文件转py文件及no Qt platform plugin could be initialized 问题解决】
目录 一.寻找designer.exe 二.no Qt platform plugin could be initialized 问题解决 三.ui文件转换为py文件 四.pyqt5的使用教程 一.寻 ...
- PyQt5树形结构控件QTreeWidget操作
QTreeWidget 类根据预设的模型提供树形显示控件. QTreeWidget 使用类似于 QListView 类的方式提供一种典型的基于 item 的树形交互方法类,该类基于QT的"模 ...
- openopc.opcerror: dispatch: 无效的类字符串_实战PyQt5: 064-MV框架中的Model类
模型(Model)简介 在Model-View框架中,模型(Model)为视图(View)和委托(Delegate)使用数据提供了标准接口.大多数情况下模型中并不真正存储数据(如果只有少量的数据,可以 ...
- 用PYQT5实现非常基本sqlite的编辑器
用PYQT5实现非常sqlite简单数据显示编辑 目录 复制 目录 主要思路 链接数据库 cachedTable treeview 代码实现 界面实现 功能介绍 截图 主要思路 链接数据库 self. ...
- PyQt5快速开发与实战 5.1 表格与树
PyQt5快速开发与实战 文章目录 PyQt5快速开发与实战 5. 第5章 PyQt5 高级界面控件 5.1 表格与树 5.1.1 QTableView 5.1.2 QListView 5.1.3 Q ...
- PYQT5(17)-高级界面控件-表格与树
表格与树解决的问题是如何在一个控件中有规律地呈现更多的数据.PyQt提供了两种控件类用于解决该问题,其中一种是表格结构的控件类:另一种是树形结构的控件类. QTableView 以表格形式输出信息,可 ...
最新文章
- Python爬虫进阶五之多线程的用法
- HDU多校2 - 6763 Total Eclipse(贪心+并查集)
- 机器学习python——python基础
- javascript运算符_JavaScript中!=或!==运算符之间的区别
- 【汇编语言】王爽 - 内中断复习
- java printwriter实例_PrintWriter做过滤流+FileWriter案例分析
- Android 百度推送使用总结
- CODEVS-1215迷宫
- android 标题名字,说说 Android 的 Material Design 设计(五)——可折叠式标题栏
- adventureworks mysql_AdventureWorks2012
- SpringBoot动态获取项目部署的端口号
- css before 箭头,伪元素beforeafter以及制作三角箭头
- 马云:今天互联网创业还靠免费是死路一条
- unity3D中导出webgl并使用js进行交互
- 超详细!简单的物联网模块esp8266接入小爱爱同学控制电器(一)——控制开关灯
- (1)语言是什么——NLP的语言基础
- golang语言牛顿法求平方根
- linux创建桥接接口,Linux创建桥接网络
- 同治光绪之交的九江城
- BeautifulSoup基础学习笔记
热门文章
- 高中 信息科技 计算机网络 课件,高中信息技术计算机网络.ppt课件.ppt.ppt
- 局域网 广域网 IP TCP UDP
- 偏心率计算公式matlab,结构计算整体指标(3)——扭转位移比及楼层偏心率
- 服务器lsass系统错误,lsass.exe系统错误如何解决?
- Flash游戏开发必备书籍
- 重庆的flash游戏开发团队
- hp android 计算器,惠普图形计算器(HP Prime Graphing Calculator)
- oracle入门教程+视频教程
- Qt学习—qt编写定时关机程序
- 基于QT的网络五子棋游戏程序的设计与实现