繁体   English   中英

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

[英]How to make QTextEdit automatically save text in PyQt5?

如何使QTextEdit 自动保存输入的内容而无需单击按钮? 有可能在PyQt5中做到吗? 到目前为止,我只能通过按钮绑定来做到这一点。

def save_text():
    text=textedit.toPlainText()
    with open('mytextfile.txt', 'w') as f:
        f.write(text)

button.clicked.connect(save_text)

如果您希望每次更改QTextEdit中的文本时都调用该方法,则只需使用“ textChanged”信号即可。 我认为在您的情况下将文本存储到文件中没有任何意义,但是以下是您需要的工作代码:

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_())

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM