如何在 QTabwidget 中保存文件?

Posted

技术标签:

【中文标题】如何在 QTabwidget 中保存文件?【英文标题】:How can I save file in QTabwidget? 【发布时间】:2020-02-01 16:32:49 【问题描述】:

这是我的代码,但我必须添加保存方法才能在选项卡中保存文本。我该怎么做?

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】:

只需保留对您创建的每个新编辑器的引用,而不是直接添加实例。

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

【讨论】:

以上是关于如何在 QTabwidget 中保存文件?的主要内容,如果未能解决你的问题,请参考以下文章

通过单击 QTabWidget 外部的按钮,将每个选项卡(QTabWidget)中的数组保存到 QTabWidget 外部的二维数组

如何保存 qtablewidget 的当前值? [复制]

matlab中如何保存数据到指定文件夹中?

在C语言中如何将一个数值保存到文件

如何在Matlab中保存文件及导入文件

如何将Bitmap保存为本地图片文件?