标签:setText parent selectedItem tree PyQt5 self item root 节点
主要介绍节点的删除, 节点的添加, 节点的修改
ModifyTree.py
""" 添加, 修改和删除树控件中的节点 """ import sys from PyQt5.QtWidgets import * class ModifyTree(QWidget): def __init__(self): super(ModifyTree, self).__init__() self.setWindowTitle("TreeWidget 例子") operatorLayout = QHBoxLayout() addBtn = QPushButton("添加节点") updateBtn = QPushButton("修改节点") deleteBtn = QPushButton("删除节点") operatorLayout.addWidget(addBtn) operatorLayout.addWidget(updateBtn) operatorLayout.addWidget(deleteBtn) addBtn.clicked.connect(self.addNode) updateBtn.clicked.connect(self.updateNode) deleteBtn.clicked.connect(self.deleteNode) self.tree = QTreeWidget() self.tree.setColumnCount(2) self.tree.setHeaderLabels(["Key", "Value"]) root = QTreeWidgetItem(self.tree) root.setText(0, 'root') root.setText(1, '0') child1 = QTreeWidgetItem(root) child1.setText(0, 'child1') child1.setText(1, '1') child2 = QTreeWidgetItem(root) child2.setText(0, 'child2') child2.setText(1, '2') child3 = QTreeWidgetItem(child2) child3.setText(0, 'child3') child3.setText(1, '3') self.tree.clicked.connect(self.onTreeClicked) mainLayout = QVBoxLayout(self) mainLayout.addLayout(operatorLayout) mainLayout.addWidget(self.tree) self.setLayout(mainLayout) def onTreeClicked(self, index): item = self.tree.currentItem() print(index.row()) print("key=%s, value=%s"%(item.text(0), item.text(1))) #添加节点 def addNode(self): print("添加节点") #获得当前的节点 item = self.tree.currentItem() print(item) #在当前节点上新建节点 node = QTreeWidgetItem(item) node.setText(0, "新节点") node.setText(1, "新值") def updateNode(self): print("修改节点") #获得当前的节点 item = self.tree.currentItem() #进行节点的修改 item.setText(0, "修改节点") item.setText(1, "值已经被修改") def deleteNode(self): print("删除节点") #获得根节点的父节点 root = self.tree.invisibleRootItem() #获得所选的节点 for item in self.tree.selectedItems(): #获得其父节点然后再删除其子节点 (item.parent() or root).removeChild(item) if __name__ == "__main__": app = QApplication(sys.argv) main = ModifyTree() main.show() sys.exit(app.exec_())
标签:setText,parent,selectedItem,tree,PyQt5,self,item,root,节点 来源: https://www.cnblogs.com/hyq-lst/p/15864302.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。