gpt4 book ai didi

python - 如何显示指定目录中的文件列表

转载 作者:太空宇宙 更新时间:2023-11-03 13:29:01 25 4
gpt4 key购买 nike

如何在PyQt窗口中以ListView方式显示代码指定目录下的文件

示例:就像在这个 QFileSystemModelDialog 应用程序的右 Pane 中一样

Like in the right pane of this QFileSystemModelDialog app

最佳答案

您必须创建 2 个 QFileSystemModel,一个将显示目录,另一个显示文件。要更改 QListView 的 View ,您必须使用点击信号,使用 QModelIndex 设置新的 rootIndex

import sys

from PyQt5.QtWidgets import *
from PyQt5.QtCore import *

class Widget(QWidget):
def __init__(self, *args, **kwargs):
QWidget.__init__(self, *args, **kwargs)
hlay = QHBoxLayout(self)
self.treeview = QTreeView()
self.listview = QListView()
hlay.addWidget(self.treeview)
hlay.addWidget(self.listview)

path = QDir.rootPath()

self.dirModel = QFileSystemModel()
self.dirModel.setRootPath(QDir.rootPath())
self.dirModel.setFilter(QDir.NoDotAndDotDot | QDir.AllDirs)

self.fileModel = QFileSystemModel()
self.fileModel.setFilter(QDir.NoDotAndDotDot | QDir.Files)

self.treeview.setModel(self.dirModel)
self.listview.setModel(self.fileModel)

self.treeview.setRootIndex(self.dirModel.index(path))
self.listview.setRootIndex(self.fileModel.index(path))

self.treeview.clicked.connect(self.on_clicked)

def on_clicked(self, index):
path = self.dirModel.fileInfo(index).absoluteFilePath()
self.listview.setRootIndex(self.fileModel.setRootPath(path))


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

关于python - 如何显示指定目录中的文件列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50283851/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com