[英]PyQt5 Save QlineEdit to text file with QFileDialog
我正在嘗試通過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]
另請注意,如果您要從命令行/終端運行腳本,則會輸出錯誤,可用於診斷此類問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.