上一篇已经实现了小项目的界面,这一篇主要实现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