fix: изменены взаимосвязи

This commit is contained in:
Andrew 2024-11-26 18:28:05 +03:00
parent 67e4a9ea70
commit 056d9fedb8
10 changed files with 11 additions and 22 deletions

Binary file not shown.

View File

@ -7,9 +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: def push_settings(self, settings: list[dict]) -> None:
self._mediator.push_settings(settings) self.signal_settings.emit(settings)

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)

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,14 +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) controller.signal_settings.connect(mediator.push_settings)
window.push_settings()
sys.exit(app.exec_()) sys.exit(app.exec_())

View File

@ -230,21 +230,6 @@ class BasePlotWidget:
... ...
class BaseController(QObject): class BaseController(QObject):
def __init__(self,
window: Optional[BaseMainWindow] = None,
mediator: Optional[BaseMediator] = None):
super().__init__()
self._mediator = mediator
self._window = window
self._window.controller = self
@property
def mediator(self) -> BaseMediator:
return self._mediator
@mediator.setter
def mediator(self, mediator: BaseMediator) -> None:
self._mediator = mediator
def send_widgets(self, widgets: list[QWidget]) -> None: def send_widgets(self, widgets: list[QWidget]) -> None:
... ...
@ -294,6 +279,7 @@ class BaseMainWindow(QWidget):
controller: Optional[BaseController] = None): controller: Optional[BaseController] = None):
super().__init__() super().__init__()
self._controller = controller self._controller = controller
...
@property @property
def controller(self) -> BaseController: def controller(self) -> BaseController: