前面内容,我们介绍了PyQt5中一个很常用的高级控件类—QTreeWidget类。
树状结构
Python界面如何漂亮的展示树形结构,PyQt5控件之QTreeWidget详解
本篇内容我们不讲知识点,只讲这个控件的应用。
01问题的提出
我们通过一个例子来梳理一下如何使用这个控件类。
经常关注我的小伙伴一定会看过前面有一篇内容,讲解关于三级联动列表栏的制作过程。(感兴趣的小伙伴可以看一下这篇文章Python用PyQt5设计省市县三级联动的下拉选框,QComboBox使用详解)
这篇文章中我们使用QComboBox控件制作了一个三级联动的下拉选框。
三级联动下拉选框
上面的三级联动下拉选框我们是利用了一个json文件来获取数据的,json文件结构如下所示:
界面数据源
现在,我们的需求有变化了,如果我不仅需要知道各个省份包含哪些市、州,各个市、州包含哪些县、区,我还需要知道各个省、市(州)、县(区)的编码(别问我编码是什么?看你的身份证前六位),我想把这些信息在一个PyQt5控件中全部显示出来。这个问题该如何解决呢?
02如何解决呢?
对于上面的需求,说白了,就是实现下面的功能!
程序要实现的效果展示
这样的效果如何实现呢?
很显然,它利用了我们之前讲到的QTreeWidget控件。我们需要的数据来自一个json文件,因此我们还需要一个解析json的模块。
json模块解析数据
本例的关键其实是:如何将解析出来的json文件中的有效数据,添加到QTreeWidget控件中显示的问题。
显示问题
对于QTreeWidget控件的创建过程,我们前一篇内容已经介绍了,感兴趣的读者可以参考下(参见文首链接)。
03QTreeWidget控件创建过程
QTreeWidget的创建,菜鸟们可以试试这个思路:
梳理下思路
项目内容准备(json数据、列表、字典、等等复杂的树形结构都可以);创建一个QTreeWidget类的实例(初始化时就设置好相关属性);利用类的实例方法,通过遍历循环添加我们之前准备好的项目内容(这就看具体需求了)。
04解决问题
上面解题思路已经很清楚了,废话不多数,我们直接上代码吧!
程序源代码
我们来看下问题解决了没?
00:15
好的,完美解决问题!
想要源码和涉及json文件的小伙伴关注私信“qtreewidget案例”获取,喜欢Python编程的小伙伴关注我,后续推出更加精彩的内容。
本文作者原创,未经作者同意,严禁转载!