本文已参与「新人创作礼」活动,一起开启掘金创作之路。
打开整个文件目录
如果你要直接打开电脑的各个文件目录。例如显示出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_())
在上面的代码中,如果双击文件后,就会显示文件的路径和文件名,如果你有其他需要的话,例如打开文件啊,知道了文件的路径,我们判断一下文件的类型就可以打开该文件了。