QT开发中文网

pyqt5 函数 执行的功能为 将一个指定的文件夹下的所有文件或文件夹 显示在主界面的treewidget上

下面是一个示例代码,可以实现将指定的文件夹下的所有文件或文件夹显示在主界面的treewidget上:

import os
from PyQt5.QtWidgets import QWidget, QTreeWidget, QTreeWidgetItem

class MainWindow(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        # 创建 treewidget
        self.tree = QTreeWidget()
        self.tree.setHeaderLabel('Files and Directories')
        self.tree.itemDoubleClicked.connect(self.itemDoubleClick)
        
        # 遍历文件夹并添加到 treewidget 中
        root_path = '/path/to/folder'  # 指定要遍历的文件夹路径
        self.addItems(self.tree, root_path)
        
        # 将 treewidget 添加到主窗口中
        layout = QVBoxLayout()
        layout.addWidget(self.tree)
        self.setLayout(layout)

    def addItems(self, parent, path):
        # 遍历 path 下的所有文件和文件夹
        
        for item in os.listdir(path):
            # 构造新节点对象
            new_item = QTreeWidgetItem(parent, [item])
            
            # 如果当前遍历到的是文件夹,则递归调用 addItems 函数
            sub_path = os.path.join(path, item)
            if os.path.isdir(sub_path):
                self.addItems(new_item, sub_path)

    def itemDoubleClick(self, item, column):
        print(item.text(column))

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = MainWindow()
    window.show()
    sys.exit(app.exec_())

在上述代码中,我们首先创建了一个 QTreeWidget 对象 self.tree ,并将其添加到主界面中。

然后通过 addItems 函数遍历指定文件夹下的所有文件和文件夹,对于每个对象都创建一个新的 QTreeWidgetItem 并添加到父节点中。如果当前对象是一个文件夹,则递归调用 addItems 函数,将该文件夹下的文件和文件夹也添加到树形控件中。

最后,我们将 self.tree 添加到主窗口的 QVBoxLayout 布局中,并显示主界面。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=771

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?