【PyQt】下载文件时弹出提示用户选择保存文件位置的对话框

1 需求

在界面软件中,用户点击下载某个文件,此时软件需要提示用户选择保存到电脑的某个位置,然后软件才能将文件保存到用户指定的电脑文件夹中。

2 代码

# 需引入的库
import os
import sys
from PyQt5.QtWidgets import QFileDialog

src = './data/skb_tmp.xlsx'  # 待下载的模板文件,存放在项目中的data文件夹
fo = open(src, 'rb')  # 只读 二进制 模式打开
with fo:
    filedata = fo.read()  # 读入内存 filedata变量
fo.close()

# 函数返回2个值:文件存放路径,文件类型
# 给用户一个默认文件名myfile.xlsx
destpath, filetype = 
    QFileDialog.getSaveFileName(self, "文件保存", "myfile.xlsx", "Excel工作簿 (*.xlsx)")
if destpath:  # 如果获取的路径非空
    fi = open(destpath, 'wb')  # 写 二进制 模式创建/写入文件
    with fi:
        fi.write(filedata)  # 写入用户电脑
    fi.close()
else:  # 用户点击取消后的处理,否则程序会出错退出
    QMessageBox.information(self, "提示", "由于未选择保存位置,文件保存操作已取消")

此代码读写均是采用二进制方式,因此可以适用包括文本文件、音视频文件、图像文件、办公文档、压缩包等在内的一切文件。

也可以由程序指定一个默认的保存位置,只需将 

myfile.xlsx

改为路径全称即可,如下

D:\myfile.xlsx

3 运行效果

对话框效果图。

【PyQt】下载文件时弹出提示用户选择保存文件位置的对话框_第1张图片

 用户只需点击保存或者手动选择其他文件夹。

当用户点击取消时,弹出“保存操作取消”的提示框。

【PyQt】下载文件时弹出提示用户选择保存文件位置的对话框_第2张图片

你可能感兴趣的:(PyQt,Qt,pyqt)