Как я могу сохранить файл в QTabwidget? - PullRequest
0 голосов
/ 01 февраля 2020

Это мой код, но я должен добавить метод сохранения, чтобы сохранить текст на вкладке. Как я могу это сделать?

class Main(QMainWindow):
    def __init__(self, parent=None):
        super(Main, self).__init__(parent)

        self.initUi()

    def initUi(self):
        self.setWindowTitle("Text Editor")
        self.resize(800, 600)

        self.tab = QTabWidget(self)
        self.setCentralWidget(self.tab)
        self.tab.tabCloseRequested[int].connect(self.on_tab_close)

    def addtab(self, content, fileName):
        self.tab.addTab(QPlainTextEdit(str(content)), str(fileName))

1 Ответ

1 голос
/ 01 февраля 2020

Просто сохраните ссылку на каждый новый редактор, который вы создаете, вместо непосредственного добавления экземпляра.

class Main(QMainWindow):
    # ...
    def initUi(self):
        self.setWindowTitle("Text Editor")
        self.resize(800, 600)

        self.tab = QTabWidget(self)
        self.setCentralWidget(self.tab)
        self.tab.tabCloseRequested[int].connect(self.on_tab_close)

        self.editors = []

    def addtab(self, content, fileName):
        editor = QPlainTextEdit(str(content))
        self.tab.addTab(editor, str(fileName))
        self.editors.append(editor)

    def save(self):
        index = self.tab.currentIndex()
        if index < 0:
            return
        fileName, filter = QFileDialog.getSaveFileName(self, 'Save')
        if fileName:
            with open(fileName, 'w') as f:
                f.write(self.editors[index].toPlainText())
...