效果
代码
- 磁盘目录显示
- 点击事件,点击后可获得文件路径,我这里把文件路径输出到textedit控件,可根据实际需要进行修改
import sys
from PyQt5.QtCore import Qt, pyqtSignal, QDir
from PyQt5.QtWidgets import QApplication, QFileSystemModel, QTreeView, QDockWidget, QMainWindow, QTextEdit
class Demo(QMainWindow):
signal_main_to_usebutton = pyqtSignal(list)
def __init__(self):
super(Demo, self).__init__()
self.init_ui()
def init_ui(self):
self.resize(800, 600)
disk_dock = QDockWidget('目录', self)
self.text_edit = QTextEdit()
self.file_model = QFileSystemModel()
self.file_model.setRootPath(QDir().absoluteFilePath(r"C:\Users"))
file_tree = QTreeView()
file_tree.clicked.connect(self.on_clicked)
file_tree.setModel(self.file_model)
file_tree.setRootIndex(self.file_model.index(r"C:\Users"))
disk_dock.setWidget(file_tree)
disk_dock.setFloating(False)
disk_dock.setFeatures(QDockWidget.NoDockWidgetFeatures)
self.addDockWidget(Qt.LeftDockWidgetArea, disk_dock)
self.setCentralWidget(self.text_edit)
def on_clicked(self, index):
file_path = self.file_model.filePath(index)
self.text_edit.setPlainText(file_path)
print("file_path", file_path)
if __name__ == "__main__":
app = QApplication(sys.argv)
LW = Demo()
LW.show()
sys.exit(app.exec_())