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树图相关推荐

  1. PyQt5 QTreeView

    PyQt5 QTreeView QTreeView QTreeView import sys from PyQt5.QtWidgets import * from PyQt5.QtGui import ...

  2. PyQt5打开文件目录(QTreeView)并在QT界面输出文件目录并双击文件返回文件目录名

    最近发现了一个挺厉害的人工智能学习网站,内容通俗易懂,风趣幽默,感兴趣的可以点击此链接进行查看:床长人工智能教程 废话不多说,请看正文! 打开整个文件目录 直接打开电脑的各个文件目录.显示出c盘,d盘 ...

  3. button 样式_实战PyQt5: 111-可以使用QSS样式表的部件

    可以使用QSS样式表的部件 QSS样式表支持各种部件,属性,伪状态和子控件,从而可以实现定制部件的外观,下面我们将详细列出可以使用QSS样式表的部件: QAbstractScrollArea:所有派生 ...

  4. python制作好看的界面_【一点资讯】Python界面如何漂亮的展示树形结构,PyQt5控件之QTreeWidget详解 www.yidianzixun.com...

    前面内容,我们介绍了关于PyQt5的一些常用高级控件的使用,为了更好的便于大家理解,我们通过一些案例进行了讲解.用户接口 用Python将电子表格Excel展示在界面中,PyQt5之QTableWid ...

  5. 【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的使用教程 一.寻 ...

  6. PyQt5树形结构控件QTreeWidget操作

    QTreeWidget 类根据预设的模型提供树形显示控件. QTreeWidget 使用类似于 QListView 类的方式提供一种典型的基于 item 的树形交互方法类,该类基于QT的"模 ...

  7. openopc.opcerror: dispatch: 无效的类字符串_实战PyQt5: 064-MV框架中的Model类

    模型(Model)简介 在Model-View框架中,模型(Model)为视图(View)和委托(Delegate)使用数据提供了标准接口.大多数情况下模型中并不真正存储数据(如果只有少量的数据,可以 ...

  8. 用PYQT5实现非常基本sqlite的编辑器

    用PYQT5实现非常sqlite简单数据显示编辑 目录 复制 目录 主要思路 链接数据库 cachedTable treeview 代码实现 界面实现 功能介绍 截图 主要思路 链接数据库 self. ...

  9. PyQt5快速开发与实战 5.1 表格与树

    PyQt5快速开发与实战 文章目录 PyQt5快速开发与实战 5. 第5章 PyQt5 高级界面控件 5.1 表格与树 5.1.1 QTableView 5.1.2 QListView 5.1.3 Q ...

  10. PYQT5(17)-高级界面控件-表格与树

    表格与树解决的问题是如何在一个控件中有规律地呈现更多的数据.PyQt提供了两种控件类用于解决该问题,其中一种是表格结构的控件类:另一种是树形结构的控件类. QTableView 以表格形式输出信息,可 ...

最新文章

  1. Python爬虫进阶五之多线程的用法
  2. HDU多校2 - 6763 Total Eclipse(贪心+并查集)
  3. 机器学习python——python基础
  4. javascript运算符_JavaScript中!=或!==运算符之间的区别
  5. 【汇编语言】王爽 - 内中断复习
  6. java printwriter实例_PrintWriter做过滤流+FileWriter案例分析
  7. Android 百度推送使用总结
  8. CODEVS-1215迷宫
  9. android 标题名字,说说 Android 的 Material Design 设计(五)——可折叠式标题栏
  10. adventureworks mysql_AdventureWorks2012
  11. SpringBoot动态获取项目部署的端口号
  12. css before 箭头,伪元素beforeafter以及制作三角箭头
  13. 马云:今天互联网创业还靠免费是死路一条
  14. unity3D中导出webgl并使用js进行交互
  15. 超详细!简单的物联网模块esp8266接入小爱爱同学控制电器(一)——控制开关灯
  16. (1)语言是什么——NLP的语言基础
  17. golang语言牛顿法求平方根
  18. linux创建桥接接口,Linux创建桥接网络
  19. 同治光绪之交的九江城
  20. BeautifulSoup基础学习笔记

热门文章

  1. 高中 信息科技 计算机网络 课件,高中信息技术计算机网络.ppt课件.ppt.ppt
  2. 局域网 广域网 IP TCP UDP
  3. 偏心率计算公式matlab,结构计算整体指标(3)——扭转位移比及楼层偏心率
  4. 服务器lsass系统错误,lsass.exe系统错误如何解决?
  5. Flash游戏开发必备书籍
  6. 重庆的flash游戏开发团队
  7. hp android 计算器,惠普图形计算器(HP Prime Graphing Calculator)
  8. oracle入门教程+视频教程
  9. Qt学习—qt编写定时关机程序
  10. 基于QT的网络五子棋游戏程序的设计与实现