from datetime import datetime as dt from PyQt5 import QtWidgets from PyQt5.QtCore import Qt from src.utils.base.base import BaseMainWindow from src.gui.settings_window import settingsWindow class MainWindow(BaseMainWindow): def __init__(self): super().__init__() self.initUI() self.set_style(self) self.settings_button.clicked.connect(self._show_settings) self.operSettings = settingsWindow("params\operator_params.json", 'Operator', self._updater_trigger) self.sysSettings = settingsWindow("params\system_params.json", 'System', self._updater_trigger) def initUI(self) -> None: self.tabWidget = QtWidgets.QTabWidget() layout = QtWidgets.QVBoxLayout() layout.addWidget(self.tabWidget) self.settings_button = QtWidgets.QPushButton("Show settings") self.settings_button.setFixedWidth(160) layout.addWidget(self.settings_button) self.setLayout(layout) def show_plot_tabs(self, plot_widgets: list[QtWidgets.QWidget]) -> None: for plot_widget in plot_widgets: tab = QtWidgets.QWidget() grid = QtWidgets.QGridLayout() grid.addWidget(plot_widget) tab.setLayout(grid) self.tabWidget.addTab(tab, "SF_trace_" + dt.now().strftime('%Y_%m_%d-%H_%M_%S')) self.tabWidget.setCurrentWidget(tab) def keyPressEvent(self, a0): if a0.key() == Qt.Key_F5: self.clear() def _show_settings(self): self.operSettings.show() self.sysSettings.show() def push_settings(self) -> None: self._updater_trigger() def _updater_trigger(self) -> None: self.tabWidget.clear() operator_params = self.operSettings.getParams() system_params = self.sysSettings.getParams() self._mediator.push_settings(data=[operator_params, system_params])