gpt4 book ai didi

python - PyQt5 使用 QFileDialog 将 QlineEdit 保存到文本文件

转载 作者:行者123 更新时间:2023-12-01 02:06:38 27 4
gpt4 key购买 nike

我正在尝试通过 QFileDialog 制作一个具有保存功能的 GUI。但当我尝试保存时,它每次都会自行终止。

这是我通过按钮传递的函数的代码。

def saveInput(self):   

name = QtWidgets.QFileDialog.getSaveFileName(MainWindow, "Save File", '/', '.txt')
file = open(name, 'w')
text = self.lineEdit.text()
file.write(text)
file.close()

这是完整的代码:

from PyQt5 import QtCore, QtWidgets
from PyQt5.QtWidgets import QFileDialog

class Ui_MainWindow(object):


def saveInput(self):

name = QtWidgets.QFileDialog.getSaveFileName(MainWindow, "Save File", '/', '.txt')
file = open(name, 'w')
text = self.lineEdit.text()
file.write(text)
file.close()


def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(431, 275)
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")


self.save = QtWidgets.QPushButton(self.centralwidget)
self.save.setGeometry(QtCore.QRect(70, 140, 75, 23))
self.save.setObjectName("save")
self.save.clicked.connect(self.saveInput)

self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit.setGeometry(QtCore.QRect(70, 20, 113, 20))
self.lineEdit.setObjectName("lineEdit")
self.lineEdit.text()


MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 431, 21))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
self.statusbar = QtWidgets.QStatusBar(MainWindow)
self.statusbar.setObjectName("statusbar")
MainWindow.setStatusBar(self.statusbar)

self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)


def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
self.save.setText(_translate("MainWindow", "Save"))


if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())

最佳答案

QFileDialogs getSaveFileName 返回一个元组。您需要该元组的第一部分,即输入的名称。

name = QtWidgets.QFileDialog.getSaveFileName(MainWindow, "Save File", '/', '.txt')[0]

另请注意,如果您从命令行/终端运行脚本,它将输出一个错误,您可以使用该错误来诊断此类问题。

关于python - PyQt5 使用 QFileDialog 将 QlineEdit 保存到文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48988871/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com