树的实质是很多条数据按照一定的内在关系,分层级显示出来,因此每一条数据包括数据项和相互关系。数据项就对应了树中的列,而相互关系对应的是应该显示在哪一个条目下。
PyQt5中,树的实现有两种形式,其中较为简单的是使用Tree小部件控件。
对于静态的数据,实现树结构可以直接在Qt中拖入一个Tree小部件控件,然后右键点击它,选择编辑。
其中列是每一条数据有几个数据项,项目体现的是数据和数据之间是什么关系。
对于我们需要从数据库中查出来的数据,我么需要根据实际的数据进行排列,确定一个树的每一级有多少个条目。
其中有一种可行的实现方法是,受限用SQL对查到的数据按照树从上到下的结构排序,然后用如下代码实现:
a=[' 1 ', ' 11 ',“12”,“13”,“2”,“21”,“22”,“23”) #你的数据按照 #【根、child1 child11、child12 child13, child2, child21, child22】 #这种顺序排列 因为我在范围(len (a)): 如果len([我])==1: 根=QtWidgets.QTreeWidgetItem (self.treeWidget) root.setText(0,(我)) elif len([我])==2: 子=QtWidgets.QTreeWidgetItem(根) child.setText(0,(我)) >之前用上述代码得到的就是一个仅仅只有显示功能的树。
一般情况下,我们希望我们点击树的某一个条目,能够有相应的操作。
进入到信号和槽的编辑界面,左键点击树小部件拖动到形式的空白处,出现信号和槽的编辑界面。
左边是Tree小部件的信号的列表,右边是我们自定义的槽,可以点击编辑进行增加和删除。
<强> Tree小部件的信号说明可以参考QT的帮助文档。如下是itemClicked信号的说明:强>
(信号)无效QTreeWidget: itemClicked (QTreeWidgetItem *项,int列)
发出这个信号是当用户单击内部部件。
指定的项目是被点击的物品。该列点击项的列。如果没有点击物品,没有会发出信号。
经过上述编辑之后,ui文件生成的py文件中,实现信号和槽连接的代码如下:
self.treeWidget.itemClicked [' QTreeWidgetItem * ', ' int '] .connect (Form.tree_item_click) #其中tree_item_click是自己定义的槽函数槽函数的参数与信号的参数要相同,或者更少。
def tree_item_click(自我,物品,n): 打印(item.text (n)项为QTreeWidgetItem类。可以参照QT帮助文档中的QTreeWidgetItem类的说明,实现自定义的功能。
本文提供了一种树结构的实现,树的某个条目被点击之后的响应的实现。更多的是提供了一种PyQt相关资料的查询方法。通过对QT帮助文档的查询,可以指导PyQt的应用。
以上这篇对PyQt5中树结构的实现方法详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
对PyQt5中树结构的实现方法详解