如何使自动保存文本在QTextEdit?



我如何使QTextEdit自动保存当我完成打字?我不希望每个字母分开写时自动保存。而是在所有写入操作完成后才保存。

import sys
from PyQt5.QtWidgets import *

class MyMainWindow(QMainWindow):
def __init__(self):
super(MyMainWindow, self).__init__()
layout = QHBoxLayout()
centralWidget = QWidget()
centralWidget.setLayout(layout)
self.setCentralWidget(centralWidget)
self.textedit = QTextEdit()
self.textedit.textChanged.connect(self.save_text)
layout.addWidget(self.textedit)
def save_text(self):
text=self.textedit.toPlainText()
with open('mytextfile.txt', 'w') as f:
f.write(text)

if __name__ == "__main__":
app = QApplication(sys.argv)
form = MyMainWindow()
form.show()
sys.exit(app.exec_())

技巧可能是创建一个按钮,一旦按钮被按下,然后保存文本:

import sys
from PyQt5.QtWidgets import *

class MyMainWindow(QMainWindow):
def __init__(self):
super(MyMainWindow, self).__init__()
layout = QHBoxLayout()
centralWidget = QWidget()
centralWidget.setLayout(layout)
self.setCentralWidget(centralWidget)
self.textedit = QTextEdit()
layout.addWidget(self.textedit)
self.pushbutton = QPushButton()
self.pushbutton.clicked.connect(self.save_text)
layout.addWidget(self.textedit)
def save_text(self):
text=self.textedit.toPlainText()
with open('mytextfile.txt', 'w') as f:
f.write(text)

if __name__ == "__main__":
app = QApplication(sys.argv)
form = MyMainWindow()
form.show()
sys.exit(app.exec_())

然后,一旦你写完你的文字,只需点击按钮,它会保存你的文字。

最新更新