一、添加顶级项
root_dir = QTreeWidgetItem() # 定义项,作为顶级项
root_dir.setText(0, value) # 设置项名称
self.tree_file.addTopLevelItem(root_dir) # 设置为顶级项
二、添加子项
先需要获取当前选择的item是否顶级item,当为顶级项时,索引值>=0,用self.tree_file.indexOfTopLevelItem()进行判断。当索引值为-1时,表达当前选择的Item不是顶级项。
item = self.tree_file.currentItem() # 当前选定项
value, ok = QInputDialog.getText(self, '文件名', '请输入文件名:', QLineEdit.Normal, '新文件') # 获取输入弹出框文本
top_index = self.tree_file.indexOfTopLevelItem(item) # 顶级目录索引
if top_index >= 0 and ok:
child_item = QTreeWidgetItem(item) # 创建子项
child_item.setText(0, value) # 设置项名称
# 三级目录 文件创建
elif self.tree_file.indexOfTopLevelItem(item.parent()) >= 0 and ok: # 当前选择项的你父项为顶级项且点击了Ok按钮
child_item = QTreeWidgetItem(item) # 创建子项
child_item.setText(0, value) # 设置项名称
当前选择项不为顶级项时获取顶级索引的方法: self.tree_file.indexOfTopLevelItem(item.parent()) # 获取顶级顶的索引 item.parent().indexOfChild(item) # 获取当前选择项索引(二级目录) item.indexOfChild(child_item) # 获取当前选择项的子项的索引(三级目录)
item.parent().takeChildren() # 删除当前选择的子项
treewidget没有直接获取当前项索引的方法,我取了个巧,用item.parent().indexOfChild(item),先查出当前选择项的父项对象,再利用父项对象的子项索引返回。
本文介绍如何使用Qt中的树形控件(QTreeWidget)实现文件夹结构的展示及操作,包括添加顶级项、子项及三级目录,并提供具体实现步骤。
1457

被折叠的 条评论
为什么被折叠?



