|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 子飞鱼 于 2023-11-13 11:30 编辑
请各位大神给看看下面的代码为什么运行出错: def showFileDialog(self):
options = QFileDialog.Options()
options |= QFileDialog.DontUseNativeDialog
fileName, _ = QFileDialog.getSaveFileName(self, "保存", "", "文本文件 (*.txt)", options=options)
if fileName:
with open(fileName, 'w') as file:
file.write(f'{self.ui.result.toPlainText()}')
print("选择的文件路径:", fileName)
其中:self.ui.result.toPlainText() 是我定义的一个QPlainText,作为输出计算结果的地方,想用上面的函数把输出再 QPlainText上的内容保存成txt文件
执行后 在fileName, _ = QFileDialog.getSaveFileName(self, "保存", "", "文本文件 (*.txt)", options=options) 这行报错,
报错内容是:
fileName, _ = QFileDialog.getSaveFileName(self, "保存", "", "文本文件 (*.txt)", options=options)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: 'PySide6.QtWidgets.QFileDialog.getSaveFileName' called with wrong argument types:
PySide6.QtWidgets.QFileDialog.getSaveFileName(jiemian, str, str, str)
Supported signatures:
PySide6.QtWidgets.QFileDialog.getSaveFileName(PySide6.QtWidgets.QWidget, Optional[str] = None, str = '', str = '', str = '', PySide6.QtWidgets.QFileDialog.Option = Default(QFileDialog.Options))
jiemian是我定义的类名字
问题出在你调用 QFileDialog.getSaveFileName 方法时传入的参数类型不正确。根据报错信息, getSaveFileName 方法接受的第一个参数应该是 PySide6.QtWidgets.QWidget 类型,而你传入的是 jiemian ,这是你定义的类名。因此,你需要将 self 改为你的窗口类的实例对象,确保传入的参数类型正确。
你需要将代码修改为如下所示:
fileName, _ = QFileDialog.getSaveFileName(self.window(), "保存", "", "文本文件 (*.txt)", options=options)
这样就能正确调用 getSaveFileName 方法了。
|
|