下面是一个简单的文件浏览器应用程序,使用 Python 和 PyQt5 编写。这个应用程序可以显示系统中的文件和目录,并允许用户浏览文件系统。
代码实现
import sys
import os
from PyQt5.QtWidgets import QApplication, QMainWindow, QTreeView, QFileSystemModel, QVBoxLayout, QWidget
class FileBrowser(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle("文件浏览器")
self.setGeometry(100, 100, 800, 600)
# 创建一个树形视图来显示文件系统
self.tree_view = QTreeView(self)
self.tree_view.setUniformRowHeights(True)
# 创建一个文件系统模型
self.model = QFileSystemModel()
self.model.setRootPath(os.path.expanduser("~")) # 设置根路径为用户主目录
self.tree_view.setModel(self.model)
# 设置树视图的根路径
self.tree_view.setRootIndex(self.model.index(os.path.expanduser("~")))
# 创建布局并添加到窗口
layout = QVBoxLayout()
layout.addWidget(self.tree_view)
container = QWidget()
container.setLayout(layout)
self.setCentralWidget(container)
if __name__ == '__main__':
app = QApplication(sys.argv)
file_browser = FileBrowser()
file_browser.show()
sys.exit(app.exec_())
代码讲解
-
窗口设置:
- 创建一个继承自
QMainWindow
的FileBrowser
类,并设置窗口标题和初始尺寸。
- 创建一个继承自
-
树形视图:
- 使用
QTreeView
组件来显示文件系统。
- 使用
-
文件系统模型:
- 使用
QFileSystemModel
来提供文件系统的数据。 - 设置根路径为用户的主目录。
- 使用
-
布局容器:
- 创建一个
QVBoxLayout
布局,并将树形视图添加至布局中。 - 将布局设置为主窗口的中心小部件。
- 创建一个
运行代码
将上述代码保存为 file_browser.py
,然后在命令行中运行:
python file_browser.py
功能说明
- 这个简单的文件浏览器会展示用户主目录下的所有文件和文件夹。
- 用户可以通过点击文件夹来展开或查看文件内容。