Compare commits

...

2 Commits

11 changed files with 29 additions and 21 deletions

Binary file not shown.

View File

@ -7,6 +7,10 @@ from src.utils.base.base import BaseController
class Controller(BaseController): class Controller(BaseController):
signal_widgets = pyqtSignal(list) signal_widgets = pyqtSignal(list)
signal_settings = pyqtSignal(list)
def send_widgets(self, widgets: list[QWidget]) -> None: def send_widgets(self, widgets: list[QWidget]) -> None:
self.signal_widgets.emit(widgets) self.signal_widgets.emit(widgets)
def push_settings(self, settings: list[dict]) -> None:
self.signal_settings.emit(settings)

View File

@ -20,9 +20,9 @@ class Mediator(BaseMediator):
if issubclass(source.__class__, BasePlotWidget): if issubclass(source.__class__, BasePlotWidget):
self._controller.send_widgets(data) self._controller.send_widgets(data)
def push_settings(self, data: list[dict]): def push_settings(self, settings: list[dict]):
self._monitor.update_settings(data) self._monitor.update_settings(settings)
self._plot.update_settings(data) self._plot.update_settings(settings)
self._monitor.force_all_dir() self._monitor.force_all_dir()

View File

@ -1,13 +1,16 @@
from datetime import datetime as dt from datetime import datetime as dt
from typing import Optional
from PyQt5 import QtWidgets from PyQt5 import QtWidgets
from PyQt5.QtCore import Qt from PyQt5.QtCore import Qt
from src.utils.base.base import BaseMainWindow from src.utils.base.base import BaseMainWindow, BaseController
from src.gui.settings_window import settingsWindow from src.gui.settings_window import settingsWindow
class MainWindow(BaseMainWindow): class MainWindow(BaseMainWindow):
def __init__(self): def __init__(self,
controller: Optional[BaseController] = None):
super().__init__() super().__init__()
self._controller = controller
self.initUI() self.initUI()
self.set_style(self) self.set_style(self)
self.settings_button.clicked.connect(self._show_settings) self.settings_button.clicked.connect(self._show_settings)
@ -47,7 +50,7 @@ class MainWindow(BaseMainWindow):
self.tabWidget.clear() self.tabWidget.clear()
operator_params = self.operSettings.getParams() operator_params = self.operSettings.getParams()
system_params = self.sysSettings.getParams() system_params = self.sysSettings.getParams()
self._mediator.push_settings(data=[operator_params, system_params]) self._controller.push_settings([operator_params, system_params])

View File

@ -9,7 +9,6 @@ from src.controller.mediator import Mediator
from src.controller.converter import DataConverter from src.controller.converter import DataConverter
from src.gui.plotter import PlotWidget from src.gui.plotter import PlotWidget
from src.controller.controller import Controller from src.controller.controller import Controller
from src.utils.json_tools import read_json
def main(): def main():
@ -18,13 +17,14 @@ def main():
data_converter = DataConverter() data_converter = DataConverter()
plot_widget_builder = PlotWidget() plot_widget_builder = PlotWidget()
controller = Controller() controller = Controller()
window = MainWindow() window = MainWindow(controller)
mediator = Mediator(monitor, data_converter, plot_widget_builder, controller, window) mediator = Mediator(monitor, data_converter, plot_widget_builder, controller)
window.push_settings()
window.show() window.show()
controller.signal_widgets.connect(window.show_plot_tabs) controller.signal_widgets.connect(window.show_plot_tabs)
controller.signal_settings.connect(mediator.push_settings)
window.push_settings()
sys.exit(app.exec_()) sys.exit(app.exec_())

View File

@ -15,8 +15,7 @@ class BaseMediator:
monitor: BaseDirectoryMonitor, monitor: BaseDirectoryMonitor,
converter: BaseDataConverter, converter: BaseDataConverter,
plot: BasePlotWidget, plot: BasePlotWidget,
controller: BaseController, controller: BaseController):
window: BaseMainWindow):
self._monitor = monitor self._monitor = monitor
self._monitor.mediator = self self._monitor.mediator = self
self._converter = converter self._converter = converter
@ -24,8 +23,7 @@ class BaseMediator:
self._plot = plot self._plot = plot
self._plot.mediator = self self._plot.mediator = self
self._controller = controller self._controller = controller
self._window = window self._controller.mediator = self
self._window.mediator = self
def notify(self, def notify(self,
source: Union[BaseDirectoryMonitor, BaseDataConverter, BasePlotWidget, BaseMainWindow], source: Union[BaseDirectoryMonitor, BaseDataConverter, BasePlotWidget, BaseMainWindow],
@ -236,6 +234,8 @@ class BaseController(QObject):
def send_widgets(self, widgets: list[QWidget]) -> None: def send_widgets(self, widgets: list[QWidget]) -> None:
... ...
def push_settings(self, settings: list[dict]) -> None:
...
# FIXME: WeldingDF показывает только 1 секунду # FIXME: WeldingDF показывает только 1 секунду
@ -276,17 +276,18 @@ class BaseIdealDataBuilder(OptAlgorithm):
class BaseMainWindow(QWidget): class BaseMainWindow(QWidget):
def __init__(self, def __init__(self,
mediator: Optional[BaseMediator] = None): controller: Optional[BaseController] = None):
super().__init__() super().__init__()
self._mediator = mediator self._controller = controller
...
@property @property
def mediator(self) -> BaseMediator: def controller(self) -> BaseController:
return self._mediator return self._controller
@mediator.setter @controller.setter
def mediator(self, mediator: BaseMediator) -> None: def controller(self, controller: BaseController) -> None:
self._mediator = mediator self._controller = controller
def set_style(self, object: Union[QTabWidget, QWidget]) -> None: def set_style(self, object: Union[QTabWidget, QWidget]) -> None:
object.setStyleSheet(""" object.setStyleSheet("""