本文主要是介绍PySide6进阶教程 | 实现单、多个各类文件的导入,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
前言
在PySide6中实现文件导入功能可以通过使用QFileDialog
类来完成。QFileDialog
提供了多种模式,可以根据需要选择单个文件或多个文件的导入。 本章将详细介绍如何利用QFileDialog类来实现单个文件或多个文件的导入功能,并结合按钮组件来触发相关事件。
🚀🚀🚀 Pyside6实战教程专栏目录入口:点击跳转
目录
- 一、单文件导入
- 示例
- 二、多文件导入
- 示例
- 三、文件夹导入
一、单文件导入
核心代码:
file_name, _ = QFileDialog.getOpenFileName(self, "选择单个文件", "", "All Files (*)")
这样打开的默认位置是程序文件所在的位置,允许用户选择一个任意文件。如果需要固定默认打开的位置,可对其进行修改,添加绝对路径:
file_name, _ = QFileDialog.getOpenFileName(self, "选择单个文件", "D:", "All Files (*)")
示例
from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton, QVBoxLayout, QWidget, QLabel, QFileDialogclass FileImportApp(QMainWindow):def __init__(self):super().__init__()self.setWindowTitle("File Import App")# 设置中心小部件和布局central_widget = QWidget(self)self.setCentralWidget(central_widget)layout = QVBoxLayout(central_widget)# 添加标签和按钮self.label = QLabel("示例")layout.addWidget(self.label)button = QPushButton("打开文件")button.clicked.connect(self.select_file)layout.addWidget(button)def select_file(self):file_name, _ = QFileDialog.getOpenFileName(self, "Select File", "", "All Files (*)")if file_name:self.label.setText(f"Selected file: {file_name}")if __name__ == "__main__":app = QApplication([])window = FileImportApp()window.show()app.exec()
二、多文件导入
核心代码:
files, _ = QFileDialog.getOpenFileNames(self, "选择多个文件", "", "All Files (*)")
使用QFileDialog.getOpenFileNames()
返回的files
参数是一个数组,数组里每个元素是一个文件路径名。
示例
修改上面的程序,使其能够选择多个文件,并将它们的路径显示在一个列表中。
from PySide6.QtWidgets import QApplication, QMainWindow, QPushButton, QVBoxLayout, QWidget, QListWidget, QFileDialogclass MultiFileImportApp(QMainWindow):def __init__(self):super().__init__()self.setWindowTitle("Multiple File Import App")central_widget = QWidget()self.setCentralWidget(central_widget)layout = QVBoxLayout()self.file_list = QListWidget()layout.addWidget(self.file_list)button = QPushButton("选择多个文件")button.clicked.connect(self.select_files)layout.addWidget(button)central_widget.setLayout(layout)def select_files(self):files, _ = QFileDialog.getOpenFileNames(self, "Select Files", "", "All Files (*)")if files:self.file_list.clear()for file in files:self.file_list.addItem(file)if __name__ == "__main__":app = QApplication([])window = MultiFileImportApp()window.show()app.exec()
三、文件夹导入
核心代码:
folder_name = QFileDialog.getExistingDirectory(self, "选择文件夹","D:")
最后一个参数是默认打开的所处位置。
示例与上面二个相似,这里就不再做详细介绍了。
这篇关于PySide6进阶教程 | 实现单、多个各类文件的导入的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!