【问题标题】:Image download/save through QFileDialog通过 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 中完成所有这些

标签: python python-3.x pyqt pyqt5 qfiledialog


【解决方案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)

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2015-02-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-05
  • 1970-01-01
  • 1970-01-01
  • 2015-04-19
相关资源
最近更新 更多