博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PyQt5之QTreeWidget树形结构
阅读量:3960 次
发布时间:2019-05-24

本文共 2629 字,大约阅读时间需要 8 分钟。

PyQt5之QTreeWidget树形结构

一、QTreeWidget类中的常用方法

方法 描述
setColumnWidth(int column,int width) 将指定列的宽度设置为给定的值width
insertTopLevelItems() 在视图的顶层索引中插入项目列表
expandAll() 展开所有的树形节点
invisibleRootItem() 返回树形控件中不可见的根选项
selectedItems() 返回所有选定的非隐藏项目的列表

二、QTreeWidgetItem类中的常用方法

方法 描述
addChild() 将子项追加到子列表中
setText() 设置显示的节点文本
Text() 返回显示的节点文本
setCheckState(column,state) 设置指定列的选中状态:Qt.Checked(节点选中),Qt.Unchecked(节点未选中)
setIcon(column,icon) 在指定的列中显示图标

三、树形结构的实现

import sysfrom PyQt5 import QtCorefrom PyQt5.QtWidgets import *from PyQt5.QtGui import *from PyQt5.QtCore import *class Table(QMainWindow):    def __init__(self):        super().__init__()        self.setGeometry(300, 300, 500, 400)        self.setWindowTitle('QTreeWidget的基本用法')        self.tree = QTreeWidget()        #设置列数        self.tree.setColumnCount(2)        #设置树形控件头部的标题        self.tree.setHeaderLabels(['key','value'])        #设置根节点        root = QTreeWidgetItem(self.tree)        root.setText(0,'root')        #设置树形控件的列的宽度        self.tree.setColumnWidth(0,160)        #设置子节点1        child1 = QTreeWidgetItem(root)        child1.setText(0,'child1')        child1.setText(1,'ios')        #设置子节点2        child2 = QTreeWidgetItem(root)        child2.setText(0,'child2')        child2.setText(1,'')        #设置子节点3        child3 = QTreeWidgetItem(child2)        child3.setText(0,'child3')        child3.setText(1,'android')        self.tree.addTopLevelItem(root)        self.setCentralWidget(self.tree)        self.tree.expandAll()if __name__ == "__main__":    app = QApplication(sys.argv)    form = Table()    form.show()    sys.exit(app.exec_())

运行效果如下:

在这里插入图片描述

还可以通过QTreeWidget.insertTopLevelItems()来实现树形结构,核心代码如下:

#设置根节点root = QTreeWidgetItem(self.tree)root.setText(0,'root')rootList = []rootList.append(root)child1 = QTreeWidgetItem()child1.setText(0,'child1')child1.setText(1,'ios')root.addChild(child1)self.tree.insertTopLevelItems(0,rootList)
  1. 设置节点状态
#设置是否选中child1.setCheckState(0,Qt.Checked)
  1. 设置节点的背景颜色
brush_red = QBrush(Qt.red)root.setBackground(0,brush_red)brush_green = QBrush(Qt.green)root.setBackground(1,brush_green)
  1. 给节点添加响应事件
self.tree.clicked.connect(self.onTreeClicked)def onTreeClicked(self,q):    item = self.tree.currentItem()    print('key=%s,value=%s' %(item.text(0),item.text(1)))
  1. 系统定制模式
import sysfrom PyQt5 import QtCorefrom PyQt5.QtWidgets import *from PyQt5.QtGui import *from PyQt5.QtCore import *if __name__ == "__main__":    app = QApplication(sys.argv)    #window系统提供的模式    model = QDirModel()    #创建一个QTreeView控件    tree = QTreeView()    #为控件添加模式    tree.setModel(model)    tree.setWindowTitle('QTreeView例子')    tree.show()    sys.exit(app.exec_())

运行效果如下:

在这里插入图片描述

转载地址:http://ctozi.baihongyu.com/

你可能感兴趣的文章
"undefined reference to" 多种可能出现的问题解决方法
查看>>
类结构定义
查看>>
Windows下关于多线程类 CSemaphore,CMutex,CCriticalSection,CEvent,信号量CSemaphore的使用介绍
查看>>
图像处理基本算法(汇总)以及实现
查看>>
C++编程获取本机网卡信息 本机IP 包括Windows和Linux
查看>>
23种设计模式详解及C++实现
查看>>
C++连接CTP接口实现简单量化交易
查看>>
服务端使用c++实现websocket协议解析及通信
查看>>
C# string.Format使用说明
查看>>
Linux下安装Mysql数据库开发环境
查看>>
Linux用户及用户组添加和删除操作
查看>>
通用 Makefile 的编写方法以及多目录 makefile 写法
查看>>
C++的4种智能指针剖析使用
查看>>
RPC框架实现之容灾策略
查看>>
Docker私库
查看>>
hdu——1106排序(重定向)
查看>>
hdu——1556Color the ball(树状数组)
查看>>
hdu——1541Stars(树状数组)
查看>>
快速幂的精简代码
查看>>
求大数乘方的前n位数字(对数加快速幂)
查看>>