PySide从实战开始学习系列(三)QTreeWidget的使用

本文是PySide学习系列的第三篇,重点介绍如何使用QTreeWidget并通过递归方法填充数据。通过自定义JSON文件的键值,实现了在QTreeWidget中显示数据的递归功能,同时设置了右侧表格的格式。下篇将探讨PySide中通过信号和槽进行信息传递的实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上一篇已经实现了小项目的界面,这一篇主要实现Tree的内容。


在学习编程语言的时候,记得老师在讲递归时最经典的两个例子:一个是文件夹的遍历,一个是扫雷。

遍历这玩意在tree中再合适不过,所以,往QTreeWidget中添加数据,就用递归实现。


递归没什么好说的,直接上,只是QTreeWidget的子项叫QTreeWidgetItem,每个子项都是一个QTreeWidgetItem,所以,

需要自定义json文件的key值为全局变量,方便使用:

TREE_NODE = "items"   # json文件中子项key
TREE_NODE_NAME = "label"   # 每项显示在tree中的名字的key

递归代码如下:

# 获取tree数据的递归函数,在取值时使用
def get_data(widget, data_list):
    for data in data_list:
        # 创建一个新的tree子项
        new_widget = QtGui.QTreeWidgetItem(widget)
        # 判断是否有label项,如果有,子项显示label名,如果没有,显示No Label
        if data.has_key(u"label"):
            new_widget.setText(0, data[TREE_NODE_NAME])
        else:
            new_widget.setText(0, "No Label")
        # 把所有数据放到新创建的子项中
            new_widget.setData(0, QtCore.Qt.UserRole, data)
        # 判断是否有子项
        if data.has_key(TREE_NODE):
            get_data(new_widget, d
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值