13 PyQt5控件之QTreeWidget

news2024/10/6 0:30:14

目录

    • 1 官方帮助文档
    • 2 基本使用
    • 3 模型事件

1 官方帮助文档

QTreeWidget Qt5.15帮助文档

2 基本使用

#!/usr/bin/python3
# -*- coding: GBK -*-

import sys
from PyQt5.QtCore import QSize
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import *

class QTreeWidgetDemo(QWidget):
    def __init__(self):
        super(QTreeWidgetDemo, self).__init__()
        self.resize(400, 400)
        self.mainlayout = QVBoxLayout(self)
        self.treewidget = QTreeWidget(self)
        self.mainlayout.addWidget(self.treewidget)
        self.setWindowTitle('树控件 QTreeWidget')
        #指定列数 标签头
        self.treewidget.setColumnCount(3)
        self.treewidget.setHeaderLabels(['姓名','年龄','籍贯'])
        #根节点
        self.root = QTreeWidgetItem(self.treewidget)
        self.root.setText(0, '根节点')
        #添加子节点
        self.childitem = QTreeWidgetItem(self.root)
        self.childitem.setText(0,'子节点文字')


if __name__ == '__main__':
    app = QApplication(sys.argv)
    test = QTreeWidgetDemo()
    test.show()
    sys.exit(app.exec_())

如下:
在这里插入图片描述

#!/usr/bin/python3
# -*- coding: GBK -*-

import sys
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
from images import *

class QTreeWidgetDemo(QWidget):
    def __init__(self):
        super(QTreeWidgetDemo, self).__init__()
        self.resize(400, 400)
        self.mainlayout = QVBoxLayout(self)
        self.treewidget   = QTreeWidget(self)
        self.mainlayout.addWidget(self.treewidget)
        self.setWindowTitle('树控件 QTreeWidget')
        #指定列数 标签头
        self.treewidget.setColumnCount(3)
        self.treewidget.setHeaderLabels(['姓名','年龄','籍贯'])
        #根节点
        self.root = QTreeWidgetItem(self.treewidget)
        self.root.setIcon(0, QIcon(":/questionMark.png"))
        self.root.setIcon(1, QIcon(":/whole.png"))
        self.root.setText(0, '根节点')
        self.root.setText(1, '第一列')
        self.root.setText(2, '第二列')

        topitem1 = QTreeWidgetItem(self.treewidget )
        self.treewidget.addTopLevelItem(topitem1)
        topitem1.setText(0, '#第0列')
        childitem = QTreeWidgetItem(topitem1)
        childitem.setText(0,'childitem0')
        childitem.setText(1,'childitem1')
        #itemClicked(QTreeWidgetItem *item, int column)
        self.treewidget.itemClicked.connect(self.itemclicked)

        topitem2 = QTreeWidgetItem(self.treewidget, ['0','1','2'])


    def itemclicked(self, item, column):
        print("点击", column, item.text(column))

if __name__ == '__main__':
    app = QApplication(sys.argv)
    test = QTreeWidgetDemo()
    test.show()
    sys.exit(app.exec_())

如下:
在这里插入图片描述

3 模型事件

#!/usr/bin/python3
# -*- coding: GBK -*-

import sys
from PyQt5.QtCore import QSize
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *

from images import *

class QTreeViewDemo(QWidget):
    def __init__(self):
        super(QTreeViewDemo, self).__init__()
        self.resize(400, 400)
        self.mainlayout = QVBoxLayout(self)
        self.treeview   = QTreeView(self)
        self.mainlayout.addWidget(self.treeview)
        self.setWindowTitle('QTreeView')
        self.mode = QStandardItemModel(self)
        self.mode.setHorizontalHeaderLabels(['列'])
        self.treeview.setModel(self.mode)
        #隐藏表头
        self.treeview.setHeaderHidden(True)
        #展开
        self.treeview.expandAll()

        item00 = QStandardItem('第一行')
        item10 = QStandardItem('第二行')
        item20 = QStandardItem('第三行')
        item00.setIcon(QIcon(":/whole.png"))
        item00.setEditable(False)
        item00.setBackground(QBrush(QColor(0,240,0)))

        item10.setIcon(QIcon(":/whole.png"))
        item20.setIcon(QIcon(":/whole.png"))
        self.mode.setItem( 0, 0, item00 )
        self.mode.setItem( 1, 0, item10 )
        self.mode.setItem( 2, 0, item20 )
        #点击信号
        self.treeview.clicked.connect(self.item_clicked)

    def item_clicked(selfself, index):
        print("---",index.row(), index.column() )



if __name__ == '__main__':
    app = QApplication(sys.argv)
    test = QTreeViewDemo()
    test.show()
    sys.exit(app.exec_())

如下:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/970797.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机毕设之基于python+django+mysql数据可视化的智慧社区内网平台(包含文档+源码+部署教程)

系统阐述的是一款基于数据可视化的智慧社区内网平台的设计与实现,对于Python、B/S结构、MySql进行了较为深入的学习与应用。主要针对系统的设计,描述,实现和分析与测试方面来表明开发的过程。开发中使用了 django框架和MySql数据库技术搭建系…

xxl-job 任务调度搭建及简单使用

xxl-job是开源架构,可以通过它实现调度中心和执行器。 git地址和 官网中进行了详细的技术说明。   xxl-job支持单机部署和集群式部署,在集群式部署中又可以实现调度中心集群式部署和执行器集群式部署。本文主要针对调度中心和执行器分离单机部署方式进…

因为axios请求后端,接收不到token的问引出的问题

vue axios请求后端接受不到token的问题。 相关概念 什么是跨域? 跨域指的是在浏览器环境下,当发起请求的域(或者网站)与请求的资源所在的域之间存在协议、主机或端口中的任何一个条件不同的情况。换句话说,只要协议、…

java八股文面试[JVM]——如何打破双亲委派模型

双亲委派模型的第一次“被破坏”是重写自定义加载器的loadClass(),jdk不推荐。一般都只是重写findClass(),这样可以保持双亲委派机制.而loadClass方法加载规则由自己定义,就可以随心所欲的加载类,典型的打破双亲委派模型的框架和中间件有tomc…

基于Java的ssm高校教学业绩信息管理系统源码和论文

基于Java的ssm高校教学业绩信息管理系统源码和论文122 开发工具:idea 数据库mysql5.7 数据库链接工具:navcat,小海豚等 技术:ssm 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存…

如何使用Windows Xshell连接另外一台主机上的虚拟机解决方案

前言 我需要使用我自己的笔记本打开虚拟机服务,如何使用我的台式电脑进行服务访问 环境: 台式:Windows10 笔记本:Windows10 网络是由笔记本开放热点,在同一局域网下 正文 首先我们先要看,我们所需要的虚拟…

Python中重要的条件语句教程

前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 一. 了解条件语句 假设一个场景: 同学们这个年龄去过网吧吗? 去网吧进门想要上网必须做的一件事是做什么?(考虑重点) 为什么要把身份证给工作人员&#xf…

【广州华锐互动】利用AR远程指导系统进行机械故障排查,实现远程虚拟信息互动

随着工业自动化和智能化的不断发展,机械故障诊断已经成为了工业生产中的重要环节。为了提高故障诊断的准确性和效率,近年来,AR(增强现实)远程协助技术逐渐应用于机械故障诊断领域。本文将探讨AR远程协助技术在机械故障…

【方案】智慧园区:AI与视频融合技术如何助力园区监管智能化升级?

一、行业背景 随着科技的不断发展,人工智能(AI)技术正在各个领域迅速应用和推广。其中,智慧园区是一个重要的应用场景,它通过AI技术的支持,实现了园区的智能化管理和高效运营。 1、园区管理智慧化升级需求…

大数据成为市场营销利器 ,促进金融贷款企业获客精准化

随着大数据技术的不断普及,中国对尖端技术和云计算技术的投资大幅增加。大数据、云计算技术、物联网等一系列新一代信息技术也加速完善。 目前,大数据技术也非常成熟,大数据的应用领域也多种多样。大数据的重要方面“运营商大数据”已经被政…

Qt+C++自建网页浏览器-Chrome blink最新内核基础上搭建-改进版本

程序示例精选 QtC自建网页浏览器-Chrome blink最新内核基础上搭建-改进版本 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对<<QtC自建网页浏览器-Chrome blink最新内核基础上搭建-改进版…

MySQL性能分析工具的使用

1. 数据库服务器的优化步骤 当我们遇到数据库调优问题的时候&#xff0c;该如何思考呢&#xff1f;这里把思考的流程整理成下面这张图。 整个流程划分成了 观察&#xff08; Show status &#xff09; 和 行动&#xff08; Action &#xff09; 两个部分。字母 S 的部分…

Vue框架--Vue中的计算属性

下面&#xff0c;我们来实现一个这样的需求。 实现输入框1和输入框2中文字内容的拼接。

你应该知道的几个大数据平台相关术语

你应该知道的几个大数据平台相关术语 1、大数据平台&#xff1a;一个全面的信息处理和分析系统&#xff0c;它能处理和分析海量、多样性的数据&#xff0c;从而为企业提供决策支持。 2、数据脱敏&#xff1a;是指对某些敏感信息通过脱敏规则进行数据的变形&#xff0c;实现敏…

JavaScript(内置对象)

目录 一&#xff0c;JavaScript内置对象二&#xff0c;Array对象2.1&#xff0c;常用属性和方法2.2&#xff0c;基本方法 三&#xff0c;Date对象3.1&#xff0c;常用方法3.2&#xff0c;小案例 四&#xff0c;Math对象 一&#xff0c;JavaScript内置对象 Array&#xff1a;用于…

ToBeWritten之基于ATTCK的威胁狩猎

也许每个人出生的时候都以为这世界都是为他一个人而存在的&#xff0c;当他发现自己错的时候&#xff0c;他便开始长大 少走了弯路&#xff0c;也就错过了风景&#xff0c;无论如何&#xff0c;感谢经历 转移发布平台通知&#xff1a;将不再在CSDN博客发布新文章&#xff0c;敬…

解决IDEA中java的system.properties乱码问题

在拉了别人的代码到本地后发现system.properties中中文注释都变成了乱码&#xff0c;故记录下解决步骤&#xff0c;供参考&#xff0c;我的系统是mac系统 1、在IDEA中打开设置&#xff0c;IDEA--->Preferences 2、点击Editor-->File Encodings 3、图中三处选择UTF-8&…

【设计模式】我终于读懂了职责链模式。。。

文章目录 &#x1f36a;学校 OA 系统的采购审批项目&#x1f36a;传统方案解决OA 系统审批&#xff0c;传统的设计方案(类图)&#x1f36a;传统方案解决OA 系统审批问题分析&#x1f36a;职责链模式基本介绍&#x1f36a;职责链模式的原理类图&#x1f36a;对原理类图的说明-即…

Python+Requests+Pytest+Excel+Allure 接口自动化测试项目实战【框架之间的对比】

--------UnitTest框架和PyTest框架的简单认识对比与项目实战-------- 定义&#xff1a; Unittest是Python标准库中自带的单元测试框架&#xff0c;Unittest有时候也被称为PyUnit&#xff0c;就像JUnit是Java语言的标准单元测试框架一样&#xff0c;Unittest则是Python语言的标…