Просто сохраните ссылку на каждый новый редактор, который вы создаете, вместо непосредственного добавления экземпляра.
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())