PyQt6 QTreeView树视图
锋哥原创的PyQt6视频教程:
2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili
QTreeView类,它是树控件的基类,使用时,必须为其提供一个模型来与之配合。
QTreeView类的常用方法:
| 方法 | 说明 |
|---|---|
| autoExpandDelay() | 获取自动展开节点所需的延时时间 |
| collapse() | 收缩指定级的节点 |
| collapseAll() | 收缩所有节点 |
| expand() | 展开指定级的节点 |
| expandAll() | 展开所有节点 |
| header() | 树的头信息,常用的有一个setVisible(方法,用来设置是否显示头 |
| isHeaderHidder() | 判断是否隐藏头部 |
| setAutoExpandDelay() | 设置自动展开的延时时间,单位为毫秒,如果值小于0,表示禁用自动展开 |
| setAlternatingRowColors() | 设置每间隔一行颜色是否一样 |
| setExpanded() | 根据索引设置是否展开节点 |
| setHeaderHidden() | 设置是否隐藏头部 |
| setItemsExpandable() | 设置项是否展开 |
| setModel() | 设置要显示的数据模型 |
| setSortingEnabled() | 设置单击头部时是否可以排序 |
| setVerticalScrollBarPolicy() | 设置是否显示垂直滚动条 |
| setHorizontalScrollBarPolicy() | 设置是否显示水平滚动条 |
| setEditTriggers() | 设置默认的编辑触发器 |
| setExpandsOnDoubleClick() | 设置是否支持双击展开树节点 |
| setWordWrap() | 设置自动换行 |
| sclectionModel() | 获取选中的模型 |
| sortByColumn() | 根据列排序 |
| setSelectionMode() | 设置选中模式,取值如下。 QAbstractItemView.NoSelection:不能选择; QAbstractItemView.SingleSelection:单选; QAbstractItemView.MultiSelection:多选; QAbstractItemView.ExtendedSelection:正常单选,按Ctrl或者Shift键后,可以多选; QAbstractItemView.ContiguousSelection:与 ExtendedSelection类似 |
| setSelectionBehavior() | 设置选中方式,取值如下。 QAbstractItemView.SelectItems:选中当前项; QAbstractItemView.SelectRows:选中整行; QAbstractItemView.SelectColumns:选中整列 |
QTreeView 类属性
-
autoExpandDelay拖放操作期间打开树中项目之前的延迟时间 -
indentation树视图中项目的缩进 -
rootIsDecorated是否显示用于展开和折叠顶级项目的控件 -
uniformRowHeights所有项目是否具有相同的高度 -
itemsExpandable项目是否可由用户展开 -
animated是否启用动画 -
allColumnsShowFocus项目是否应使用所有列显示键盘焦点 -
wordWrap文本自动换行策略 -
headerHidden标头是否显示 -
expandsOnDoubleClick是否可以通过双击扩展项目
QTreeWidget 类属性
-
columnCount显示的列数
Header 属性
-
headerVisible是否显示标题 -
headerCascadingSectionResizes标题列宽联动调整大小 -
headerDefaultSectionSize默认标题列宽大小 -
headerHighlightSections所选项目的部分是否突出显示 -
headerMinimumSectionSize标题可调节的最小尺寸 -
headerShowSortIndicator标题显示排序指示器 -
headerStretchLastSection是否可调节最后一列的宽度
PyQt6提供的内置模型:
| 模型 | 说明 |
|---|---|
| QStringListModel | 存储简单的字符串列表 |
| QStandardItemModel | 可以用于树结构的存储,提供了层次数据 |
| QFileSystemModel | 存储本地系统的文件和目录信息(针对当前项目) |
| QSqlQueryModel | 存储SQL的查询结构集 |
| QSqlTableModel | 存储SQL中的表格数据 |
| QSqlRelationalTableModel | 存储有外键关系的SOL表格数据 |
| QSortFilterProxyModel | 对模型中的数据进行排序或者过滤 |

UI生成代码:
from PyQt6 import QtCore, QtGui, QtWidgetsclass Ui_Form(object):def setupUi(self, Form):Form.setObjectName("Form")Form.resize(702, 716)self.treeView = QtWidgets.QTreeView(parent=Form)self.treeView.setGeometry(QtCore.QRect(80, 40, 256, 192))self.treeView.setObjectName("treeView")self.retranslateUi(Form)QtCore.QMetaObject.connectSlotsByName(Form)def retranslateUi(self, Form):_translate = QtCore.QCoreApplication.translateForm.setWindowTitle(_translate("Form", "Form"))
Main测试代码:
"""python加载ui文件作者 : 小锋老师官网 : www.python222.com
"""
import sysfrom PyQt6.QtGui import QStandardItemModel, QStandardItem
from PyQt6.QtWidgets import QApplication, QTreeView
from PyQt6 import uic, QtGuiif __name__ == '__main__':app = QApplication(sys.argv)ui = uic.loadUi("./QTreeView树视图.ui")myTreeView: QTreeView = ui.treeViewmodel = QStandardItemModel()model.setHorizontalHeaderLabels(['分类', '书名', '作者', '价格'])bookType1 = QStandardItem("Java类")bookType1.appendRow([QStandardItem(""), QStandardItem('Java编程思想'), QStandardItem('埃克尔'), QStandardItem('109')]) # 添加二级节点bookType1.appendRow([QStandardItem(""), QStandardItem('Java从入门到精通'), QStandardItem('码牛逼'), QStandardItem('99')]) # 添加二级节点model.appendRow(bookType1) # 添加一级节点bookType2 = QStandardItem("Python类")bookType2.appendRow([QStandardItem(""), QStandardItem('Python编程思想'), QStandardItem('老王'), QStandardItem('10')]) # 添加二级节点bookType2.appendRow([QStandardItem(""), QStandardItem('Python跟我学'), QStandardItem('老六'), QStandardItem('20')]) # 添加二级节点model.appendRow(bookType2) # 添加一级节点bookType3 = QStandardItem("Go类")bookType3.appendRow([QStandardItem(""), QStandardItem('Go编程思想'), QStandardItem('老王'), QStandardItem('10')]) # 添加二级节点model.appendRow(bookType3) # 添加一级节点myTreeView.setModel(model)myTreeView.expandAll()ui.show()sys.exit(app.exec())
相关文章:
PyQt6 QTreeView树视图
锋哥原创的PyQt6视频教程: 2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili QTreeView类,它是树控件的基类,使用时,必须为其提供一个模型来与之配合。 QTreeView类的常用方法: 方法…...
链表|148. 排序链表
148. 排序链表 题目:给你链表的头结点 head ,请将其按升序排列并返回排序后的链表。 题目链接: 148. 排序链表 时间复杂度:快排 O(n^2) 超出时间限制 class Solution {public ListNode sortList(ListNode head) {if(headnull)…...
如何解决5G基站高能耗问题?
安科瑞 须静燕 截至2023年10月,我国5G基站总数达321.5万个,占全国通信基站总数的28.1%。然而,随着5G基站数量的快速增长,基站的能耗问题也逐渐日益凸显,基站的用电给运营商带来了巨大的电费开支压力,降低5…...
PyTorch实现逻辑回归
最终效果 先看下最终效果: 这里用一条直线把二维平面上不同的点分开。 生成随机数据 #创建训练数据 x torch.rand(10,1)*10 #shape(10,1) y 2*x (5 torch.randn(10,1))#构建线性回归参数 w torch.randn((1))#随机初始化w,要用到自动梯度求导 b …...
什么是FPGA原型验证?
EDA工具的使用主要分为设计、验证和制造三大类。验证工作贯穿整个芯片设计流程,可以说芯片的验证阶段占据了整个芯片开发的大部分时间。从芯片需求定义、功能设计开发到物理实现制造,每个环节都需要进行大量的验证。 现如今验证方法也越来越多ÿ…...
基于VUE3+Layui从头搭建通用后台管理系统(前端篇)十四:系统设置模块相关功能实现
一、本章内容 本章使用已实现的公共组件实现系统管理中的系统设置模块相关功能,包括菜单管理、角色管理、日志管理、用户管理、系统配置、数据字典等。 1. 详细课程地址: 待发布 2. 源码下载地址: 待发布 二、界面预览 三、开发视频 3.1 B站视频地址:...
使用Visual Studio(VS)创建空项目的Win32桌面应用程序【main函数入口变WinMain】
前言 在Visual Studio中直接新建Windows桌面应用程序会有很多多余的代码生成,本文将提供从空项目创建Win32项目的方法,解决新建空项目直接使用WinMain代码编译报错的问题 例如:LNK2019 :无法解析的外部符号 参考博客࿱…...
基于自动化脚本批量上传依赖到nexus内网私服
前言 因为某些原因某些企业希望私服是不能连接外网的,所以需要某些开源依赖需要我们手动导入到nexus中,尽管nexus为我们提供了web页面。但是一个个手动导入显然是一个庞大的工程。 对此我们就不妨基于脚本的方式实现这一过程。 预期效果 笔者本地仓库…...
Linux中ps命令使用指南
目录 1 前言2 ps命令的含义和作用3 ps命令的基本使用4 常用选项参数5 一些常用情景5.1 查看系统中的所有进程(标准语法)5.2 使用 BSD 语法查看系统中的所有进程5.3 打印进程树5.4 获取线程信息5.5 获取安全信息5.6 查看以 root 用户身份(实际…...
PHP开发语言中,网页端常用的标签
在PHP开发语言中,网页端常用的标签包括以下几种: <html>:用于定义整个HTML文档。<head>:用于定义文档的头部,包含元数据、样式表和脚本等。<title>:用于定义文档的标题,显示…...
Java 入门第四篇 集合
Java 入门第四篇 集合 一,什么是集合 在Java中,集合(Collection)是一种用于存储和操作一组对象的容器类。它提供了一系列的方法和功能,用于方便地管理和操作对象的集合。集合框架是Java中非常重要和常用的一部分&…...
VBA技术资料MF93:将多个Excel表插入PowerPoint不同位置
我给VBA的定义:VBA是个人小型自动化处理的有效工具。利用好了,可以大大提高自己的工作效率,而且可以提高数据的准确度。我的教程一共九套,分为初级、中级、高级三大部分。是对VBA的系统讲解,从简单的入门,到…...
STM32 MCU的易坑点收集
IIC配置中的Clock No Stretch Mode Clock Stretch Mode时钟延长模式: 时钟延长是一个术语,某些从设备可以把时钟线拉低,主设备发现自己释放时钟线之后时钟线还没有变成高电平,就会停止发送数据,然后等待从设备释放时钟…...
Vue3项目filter.js组件封装
1、element-plus(el-table)修改table的行样式 export function elTableRowClassName({ row, rowIndex }) {if (rowIndex % 2 ! 0) {return default-row} }2、时间戳转换格式 export function parseTimeFilter(dateTime, dateType) {if (dateTime || dateTime undefined ||…...
Linux: pwd命令查看当前工作目录
pwd 是 Linux 和其他类 Unix 操作系统中的一个命令,用于显示当前工作目录的绝对路径。 语法 pwd 描述 pwd 是 "print working directory" 的缩写,它用于打印当前工作目录的完整路径。这对于确定当前目录位置非常有用,特别是在嵌…...
【深度学习】PHP操作mysql数据库总结
一.PHP数据库的扩展分类 1.MySQL 扩展是针对 MySQL 4.1.3 或更早版本设计的,是 PHP 与 MySQL数据库交互的早期扩展。由于其不支持 MySQL 数据库服务器的新特性,且安全性差,在项目开发中不建议使用,可用 MySQLi 扩展代替。 2.MySQ…...
【送书活动】探究AIGC、AGI、GPT和人工智能大模型
文章目录 前言01 《ChatGPT 驱动软件开发》推荐语 02 《ChatGPT原理与实战》推荐语 03 《神经网络与深度学习》推荐语 04 《AIGC重塑教育》推荐语 05 《通用人工智能》推荐语 后记赠书活动 前言 人工智能技术在过去几年中发展迅猛,得益于大数据、云计算、深度学习等…...
Apple Find My「查找」认证芯片找哪家,认准伦茨科技ST17H6x芯片
深圳市伦茨科技有限公司(以下简称“伦茨科技”)发布ST17H6x Soc平台。成为继Nordic之后全球第二家取得Apple Find My「查找」认证的芯片厂家,该平台提供可通过Apple Find My认证的Apple查找(Find My)功能集成解决方案。…...
java.lang.IllegalArgumentException: Could not resolve placeholder XXX‘ in value
问题描述 使用Springcloudalibaba的nacos作为配置中心,服务启动时报错: java.lang.IllegalArgumentException: Could not resolve placeholder XXX‘ in value java.lang.IllegalArgumentException: Param ‘serviceName’ is illegal, serviceName is …...
自动机器学习是什么?概念及应用
自动机器学习 (Auto Machine Learning) 的应用和方法 随着众多企业在大量场景中开始采用机器学习,前后期处理和优化的数据量及规模指数级增长。企业很难雇用充足的人手来完成与高级机器学习模型相关的所有工作,因此机器学习自动化工具是未来人工智能 (A…...
Chapter03-Authentication vulnerabilities
文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...
idea大量爆红问题解决
问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...
在鸿蒙HarmonyOS 5中实现抖音风格的点赞功能
下面我将详细介绍如何使用HarmonyOS SDK在HarmonyOS 5中实现类似抖音的点赞功能,包括动画效果、数据同步和交互优化。 1. 基础点赞功能实现 1.1 创建数据模型 // VideoModel.ets export class VideoModel {id: string "";title: string ""…...
系统设计 --- MongoDB亿级数据查询优化策略
系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log,共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题,不能使用ELK只能使用…...
[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?
论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...
将对透视变换后的图像使用Otsu进行阈值化,来分离黑色和白色像素。这句话中的Otsu是什么意思?
Otsu 是一种自动阈值化方法,用于将图像分割为前景和背景。它通过最小化图像的类内方差或等价地最大化类间方差来选择最佳阈值。这种方法特别适用于图像的二值化处理,能够自动确定一个阈值,将图像中的像素分为黑色和白色两类。 Otsu 方法的原…...
Springcloud:Eureka 高可用集群搭建实战(服务注册与发现的底层原理与避坑指南)
引言:为什么 Eureka 依然是存量系统的核心? 尽管 Nacos 等新注册中心崛起,但金融、电力等保守行业仍有大量系统运行在 Eureka 上。理解其高可用设计与自我保护机制,是保障分布式系统稳定的必修课。本文将手把手带你搭建生产级 Eur…...
基于Springboot+Vue的办公管理系统
角色: 管理员、员工 技术: 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能: 该办公管理系统是一个综合性的企业内部管理平台,旨在提升企业运营效率和员工管理水…...
第7篇:中间件全链路监控与 SQL 性能分析实践
7.1 章节导读 在构建数据库中间件的过程中,可观测性 和 性能分析 是保障系统稳定性与可维护性的核心能力。 特别是在复杂分布式场景中,必须做到: 🔍 追踪每一条 SQL 的生命周期(从入口到数据库执行)&#…...
