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…...
实战react项目:基于快马ai快速构建包含图表与导航的用户数据仪表盘
最近在做一个用户数据仪表盘项目,正好用React配合Ant Design实现了一套完整的界面。这种包含导航、图表和动态数据的页面在后台系统中很常见,记录下我的实现思路和踩坑经验。 项目结构规划 首先用create-react-app初始化项目,然后按功能模块…...
从检测到分析:手机位置热力图生成与行为模式挖掘扩展方案
从检测到分析:手机位置热力图生成与行为模式挖掘扩展方案 1. 引言:从“看见”到“看懂” 想象一下,你在一间大型会议室里,墙上挂着十几个监控摄像头。传统的监控系统能告诉你“画面里有手机”,但仅此而已。你无法知道…...
保姆级教程:用ESP8266-01S和机智云固件,5分钟搞定智能硬件联网(附烧录软件下载)
5分钟极速上手:ESP8266-01S与机智云固件实战指南 当你想把一盏台灯变成手机可控的智能设备,或是让温湿度传感器数据实时上传云端时,ESP8266-01S这个小巧的Wi-Fi模块就是最佳选择。它价格低廉、功能强大,配合机智云的固件…...
Zotero Citation插件进阶使用指南:从安装到定制的全流程解决方案
Zotero Citation插件进阶使用指南:从安装到定制的全流程解决方案 【免费下载链接】zotero-citation Make Zoteros citation in Word easier and clearer. 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-citation [痛点分析]:文献管理中的隐…...
高效数据采集解决方案:快手内容获取工具的技术实现与应用指南
高效数据采集解决方案:快手内容获取工具的技术实现与应用指南 【免费下载链接】kuaishou-crawler As you can see, a kuaishou crawler 项目地址: https://gitcode.com/gh_mirrors/ku/kuaishou-crawler 在信息爆炸的时代,如何高效、合规地获取网络…...
Gemma-3-270m内网穿透部署方案
Gemma-3-270m内网穿透部署方案:安全打通企业AI服务 想象一下这个场景:你们公司的研发团队刚刚在内部服务器上部署了轻量高效的Gemma-3-270m模型,准备用它来优化客服工单分类、自动生成产品文档。模型跑起来了,效果也不错…...
解锁Claude无限潜能:技能生态系统的构建艺术
解锁Claude无限潜能:技能生态系统的构建艺术 【免费下载链接】awesome-claude-skills A curated list of awesome Claude Skills, resources, and tools for customizing Claude AI workflows 项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-claude-s…...
Vue3项目实战:5分钟搞定DeepSeek API对接,打造你的专属AI聊天助手
Vue3项目实战:5分钟搞定DeepSeek API对接,打造你的专属AI聊天助手 最近在重构个人博客时,突然想到如果能给访客加个智能问答助手应该挺酷的。作为一个长期混迹开源社区的全栈开发者,我习惯性先搜了圈现有方案——结果发现DeepSeek…...
收藏!小白程序员必看:Agent和工作流是最佳拍档,教你如何协同它们(附案例)
文章探讨了AI智能体(Agent)和工作流工具的关系,指出它们并非竞争对手,而是最佳拍档。Agent擅长自主决策和动态规划,适用于探索性和不确定性任务;工作流则负责流程编排和确定性执行,适用于重复性…...
掌机影音革命:wiliwili跨设备媒体中心实战指南
掌机影音革命:wiliwili跨设备媒体中心实战指南 【免费下载链接】wiliwili 专为手柄控制设计的第三方跨平台B站客户端,目前可以运行在PC全平台、PSVita、PS4 和 Nintendo Switch上 项目地址: https://gitcode.com/GitHub_Trending/wi/wiliwili 在移…...
