PyQt5 目录视图
PyQt 可以使用 QTreeView 显示目录结构。要使树视图显示为目录树,我们需要将其模型设置为 QFileSystemModel
实例。这是通过为树实例调用 setModel
方法来实现的。
我们可以在树对象上设置其他选项:启用排序(setSortingEnabled
),动画和缩进。
![PyQt5 目录视图](/img/Tutorial/PyQt5/PyQt5 Directory View.png)
https://pythonspot-9329.kxcdn.com/wp-content/uploads/2017/03/qt5-directory-view.png
PyQt5 目录视图示例
下面的代码将目录视图(QTreeView 与 QFileSystemModel 结合)添加到网格窗口。需要为要查看的窗口小控件设置布局。
使用模型 setRootPath()
方法指定路径,其中参数是目录的完整路径。默认情况下是根目录。
import sys
from PyQt5.QtWidgets import QApplication, QFileSystemModel, QTreeView, QWidget, QVBoxLayout
from PyQt5.QtGui import QIcon
class App(QWidget):
def __init__(self):
super().__init__()
self.title = 'PyQt5 file system view - tastones.com'
self.left = 10
self.top = 10
self.width = 640
self.height = 480
self.initUI()
def initUI(self):
self.setWindowTitle(self.title)
self.setGeometry(self.left, self.top, self.width, self.height)
self.model = QFileSystemModel()
self.model.setRootPath('')
self.tree = QTreeView()
self.tree.setModel(self.model)
self.tree.setAnimated(False)
self.tree.setIndentation(20)
self.tree.setSortingEnabled(True)
self.tree.setWindowTitle("Dir View")
self.tree.resize(640, 480)
windowLayout = QVBoxLayout()
windowLayout.addWidget(self.tree)
self.setLayout(windowLayout)
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = App()
sys.exit(app.exec_())