class SettingsWindow(QDialog): def __init__(self, parent=None): super().__init__(parent) self.setWindowTitle(self.tr("Settings")) self.tabWidget = NameTabWidget(self) self.tabWidget.addNamedTab(GlyphSetTab(self)) self.tabWidget.addNamedTab(MetricsWindowTab(self)) self.tabWidget.addNamedTab(MiscTab(self)) buttonBox = QDialogButtonBox( QDialogButtonBox.Ok | QDialogButtonBox.Cancel) buttonBox.accepted.connect(self.accept) buttonBox.rejected.connect(self.reject) mainLayout = QVBoxLayout() mainLayout.addWidget(self.tabWidget) mainLayout.addWidget(buttonBox) self.setLayout(mainLayout) def accept(self): for i in range(self.tabWidget.count()): self.tabWidget.widget(i).writeSettings() app = QApplication.instance() app.postNotification("preferencesChanged") super().accept()
class SettingsWindow(QDialog): def __init__(self, parent=None): super().__init__(parent) self.setWindowTitle(self.tr("Settings")) self.tabWidget = NameTabWidget(self) self.tabWidget.addNamedTab(GlyphSetTab(self)) self.tabWidget.addNamedTab(MetricsWindowTab(self)) self.tabWidget.addNamedTab(MiscTab(self)) buttonBox = QDialogButtonBox( QDialogButtonBox.Ok | QDialogButtonBox.Cancel) buttonBox.accepted.connect(self.accept) buttonBox.rejected.connect(self.reject) mainLayout = QVBoxLayout() mainLayout.addWidget(self.tabWidget) mainLayout.addWidget(buttonBox) self.setLayout(mainLayout) self.readSettings() def readSettings(self): geometry = settings.settingsWindowGeometry() if geometry: self.restoreGeometry(geometry) def writeSettings(self): settings.setSettingsWindowGeometry(self.saveGeometry()) def moveEvent(self, event): self.writeSettings() resizeEvent = moveEvent def sizeHint(self): return QSize(625, 450) def accept(self): for i in range(self.tabWidget.count()): self.tabWidget.widget(i).writeSettings() app = QApplication.instance() app.postNotification("preferencesChanged") super().accept()