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, QFileDialog

class 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, QFileDialog


class 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:")

最后一个参数是默认打开的所处位置。

示例与上面二个相似,这里就不再做详细介绍了。

在这里插入图片描述

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

w94ghz

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值