通过 QFileDialog 下载/保存图像
Posted
技术标签:
【中文标题】通过 QFileDialog 下载/保存图像【英文标题】:Image download/save through QFileDialog 【发布时间】:2019-09-24 16:52:55 【问题描述】:我搜索了但我找不到解决方案,请可怜我。我想下载一个图像并通过 PyQt5 中的 QFileDialog 决定保存位置。
首先我下载带有模块请求的文件:
url = 'https://landscape.jpg'
r = requests.get(url)
image = r.content
...然后是代码的另一部分,QFileDialog:
options = QFileDialog.Options()
options |= QFileDialog.DontUseNativeDialog
fileName, _ = QFileDialog.getSaveFileName(self,"Save Image","H:\Image","All Files (*)",options=options)
在 QFileDialog 语句中我应该在哪里放置图像变量?
【问题讨论】:
正如 eyllanesc 指出的那样(下) QFileDialog 不保存文件,但它不仅可以为您提供文件名,它还可以返回目录的路径,然后您可以在保存操作中使用该路径来保存文件。但它的主要目的是为用户提供一个允许他们遍历目录树的界面,并且您似乎已经知道要将文件放在哪里,因此您不需要 QFileDialog。事实上,如果你没有与此相关的 Gui,那么你根本不需要 pyqt,并且可以在直接 python 中完成所有这些 【参考方案1】:QFileDialog
只是一个允许你获取文件名的小部件,不知道如何保存任何文件,你应该使用 open() 和 write() 将其保存为任何文件:
url = "https://landscape.jpg"
r = requests.get(url)
image = r.content
options = QFileDialog.Options()
options |= QFileDialog.DontUseNativeDialog
fileName, _ = QFileDialog.getSaveFileName(
self, "Save Image", r"H:\Image", "All Files (*)", options=options
)
if fileName:
with open(fileName, "wb") as f:
f.write(image)
【讨论】:
我很失望! “H:\Image”前面的 r 是什么意思?谢谢。 @Nepura 原始字符串,阅读docs.python.org/3/reference/lexical_analysis.html 了解更多信息以上是关于通过 QFileDialog 下载/保存图像的主要内容,如果未能解决你的问题,请参考以下文章
使用 opencv 和 Qt 使用 QFileDialog::getOpenFileName 打开图像