【问题标题】:QFileDialog.getSaveFilename is not saving into any kind of fileQFileDialog.getSaveFilename 没有保存到任何类型的文件中
【发布时间】:2017-08-16 18:30:21
【问题描述】:

我正在尝试制作一个 GUI,它将 QTextEdit 小部件的内容保存到 CSV 文件或 txt 文件中。我只是想让它保存。我浏览了几个问题和示例并想出了这些行

def saveCSV(self):

    filename = QFileDialog.getSaveFileName(self, "Save File", 
         d.now().strftime("%Y-%m-%d_%Hh%M")+".csv", "All Files (*);; CSV Files (*.csv)")
    if filename:
        with open(filename, "w") as file:
            file.write(self.textEdit.toPlainText())
            file.close()

但不知何故,当我单击保存时,选择目录并再次保存,没有文件出现或创建。我试过阅读文档,但 pyqt5 只在我还不熟悉的 C++ 中。有什么见解吗?

【问题讨论】:

  • 添加一些print 语句以查看发生了什么。
  • 您好,我找到了答案,看来我只需要输入filename, _ = QFileDialog.getSaveFileName(self, "Save File", d.now().strftime("%Y-%m-%d_%Hh%M")+".csv", "All Files (*);; CSV Files (*.csv)") 就可以了,虽然我不知道为什么。
  • 如果您按照我之前评论中的建议进行操作,原因就很明显了。

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


【解决方案1】:

嗨,我刚刚在 youtube 视频上找到了答案,这条线

filename = QFileDialog.getSaveFileName(self, "Save File", 
     d.now().strftime("%Y-%m-%d_%Hh%M")+".csv", "All Files (*);; CSV Files (*.csv)")

应该写成如下

filename, _ = QFileDialog.getSaveFileName(self, "Save File", 
     d.now().strftime("%Y-%m-%d_%Hh%M")+".csv", "All Files (*);; CSV Files (*.csv)")

虽然我找到了答案,但我不知道为什么我必须加下划线。有谁能给我指点一下吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-28
    • 1970-01-01
    • 2020-07-15
    • 2012-01-31
    • 1970-01-01
    • 1970-01-01
    • 2017-11-16
    • 2013-10-12
    相关资源
    最近更新 更多