pyqt5 读取系统目录 并使用QTreeWidget生成 树状图
时间: 2023-08-01 19:11:11 浏览: 73
可以使用 `QDir` 类来读取系统目录,并使用 `QTreeWidget` 来生成树状图。
以下是一个简单的示例代码:
```python
import sys
from PyQt5.QtCore import QDir
from PyQt5.QtWidgets import QApplication, QTreeWidget, QTreeWidgetItem
class DirectoryTree(QTreeWidget):
def __init__(self, parent=None):
super().__init__(parent)
self.setColumnCount(1)
self.setHeaderLabels(["Directory"])
self.populate_tree()
def populate_tree(self):
root_dir = QDir.rootPath()
root_node = QTreeWidgetItem(self, [root_dir])
self.add_directories(root_dir, root_node)
def add_directories(self, dir_path, parent):
for entry in QDir(dir_path).entryList(QDir.NoDotAndDotDot | QDir.AllDirs):
entry_path = dir_path + '/' + entry
entry_node = QTreeWidgetItem(parent, [entry])
self.add_directories(entry_path, entry_node)
if __name__ == '__main__':
app = QApplication(sys.argv)
tree = DirectoryTree()
tree.show()
sys.exit(app.exec_())
```
该代码创建了一个 `DirectoryTree` 类,该类继承自 `QTreeWidget`,并重写了 `populate_tree` 和 `add_directories` 方法来读取系统目录并生成树状图。在主函数中创建了 `DirectoryTree` 实例并显示出来。