PyQt5打开文件目录(QTreeView)

711 阅读1分钟

​本文已参与「新人创作礼」活动,一起开启掘金创作之路。

 打开整个文件目录

如果你要直接打开电脑的各个文件目录。例如显示出c盘,d盘等信息。。如下图所示。将电脑中的所有盘和目录都显示出来。可以直接在这里查看文件目录和选择文件。

代码如下:在下面的代码中,先创建一个QTreeView 控件,然后给这个控件添加一个 QDirModel 模式,然后将这个窗口创建显示,就能显示电脑中的所有文件目录了。

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *

if __name__=='__main__':
	app = QApplication(sys.argv)
	#window系统提供的模式
	model = QDirModel()
	#创建一个QTreeView()控件
	tree = QTreeView()
     #为控件添加模式。
	tree.setModel(model)
	tree.setWindowTitle("QTreeView例子")
	tree.resize(640,480)
	tree.show()
	sys.exit(app.exec_())

直接打开目标文件夹

如果你要打开的目标文件夹,例如我打开的是  ’D://教育数据包’  这个文件夹。打开目录的效果如下图所示:

代码如下: 在下面的代码中,我们先声明一个将要打开的目标目录, 然后将 model 设置为 QFileSystemModel ,然后将目录设置为根目录。这里是继承QTreeView ,然后显示这个窗口 ,就能显示出目标目录的所有文件夹和文件内容了。

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *



class TreeViewDemo(QTreeView):
    def __init__(self, parent=None):
        super(TreeViewDemo, self).__init__(parent)
    
        #window系统提供的模式
        path = 'D://教育数据包'
        self.model = QFileSystemModel()
        self.model.setRootPath(path)
        
        #为控件添加模式。
        self.setModel(self.model)
        self.setRootIndex(self.model.index(path)) #只显示设置的那个文件路径。
        self.doubleClicked.connect(self.file_name) #双击文件打开
        self.setWindowTitle("QTreeView例子")
        self.resize(640,480)
    
    def file_name(self,Qmodelidx):
        print(self.model.filePath(Qmodelidx))  #输出文件的地址。
        print(self.model.fileName(Qmodelidx))  #输出文件名
    

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

在上面的代码中,如果双击文件后,就会显示文件的路径和文件名,如果你有其他需要的话,例如打开文件啊,知道了文件的路径,我们判断一下文件的类型就可以打开该文件了。