From becb4764b4a16d0c0f445adebb7fb666e4b2f45d Mon Sep 17 00:00:00 2001 From: Andrew Date: Mon, 23 Dec 2024 18:51:17 +0300 Subject: [PATCH] =?UTF-8?q?style:=20=D0=92=D0=B2=D0=B5=D0=B4=D0=B5=D0=BD?= =?UTF-8?q?=20QMainWindow,=20=D0=BE=D0=BA=D0=BD=D0=B0=20=D0=BD=D0=B0=D1=81?= =?UTF-8?q?=D1=82=D1=80=D0=BE=D0=B5=D0=BA=20=D0=BF=D0=B5=D1=80=D0=B5=D0=BD?= =?UTF-8?q?=D0=B5=D1=81=D0=B5=D0=BD=D1=8B=20=D0=B2=20QDockWidget?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resources/operator_ico.png | Bin 0 -> 21190 bytes resources/system_ico.png | Bin 0 -> 43009 bytes resources/view_ico.png | Bin 0 -> 19772 bytes .../OptTimeCalculator.cpython-310.pyc | Bin 9747 -> 9747 bytes .../__pycache__/controller.cpython-310.pyc | Bin 1271 -> 1271 bytes .../__pycache__/converter.cpython-310.pyc | Bin 1586 -> 1586 bytes .../__pycache__/mediator.cpython-310.pyc | Bin 1337 -> 1337 bytes .../__pycache__/monitor.cpython-310.pyc | Bin 2791 -> 2791 bytes .../passportFormer.cpython-310.pyc | Bin 4347 -> 4347 bytes src/gui/__pycache__/mainGui.cpython-310.pyc | Bin 7199 -> 8767 bytes src/gui/__pycache__/plotter.cpython-310.pyc | Bin 10008 -> 10008 bytes src/gui/__pycache__/reportGui.cpython-310.pyc | Bin 5896 -> 6212 bytes .../settings_window.cpython-310.pyc | Bin 6139 -> 6139 bytes src/gui/mainGui.py | 177 ++++++++++++------ src/gui/reportGui.py | 22 ++- .../base/__pycache__/base.cpython-310.pyc | Bin 20436 -> 20605 bytes src/utils/base/base.py | 13 +- 17 files changed, 143 insertions(+), 69 deletions(-) create mode 100644 resources/operator_ico.png create mode 100644 resources/system_ico.png create mode 100644 resources/view_ico.png diff --git a/resources/operator_ico.png b/resources/operator_ico.png new file mode 100644 index 0000000000000000000000000000000000000000..1d0bf029cba58450077f97f0afbfffe77334bf99 GIT binary patch literal 21190 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 De%RPF literal 0 HcmV?d00001 diff --git a/resources/system_ico.png b/resources/system_ico.png new file mode 100644 index 0000000000000000000000000000000000000000..274497be6b012f3c9ad8e70126611b084c18241e GIT binary patch literal 43009 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 literal 0 HcmV?d00001 diff --git a/resources/view_ico.png b/resources/view_ico.png new file mode 100644 index 0000000000000000000000000000000000000000..72e9b1c1fb9c1ab1d7fcf5b30e790db67abd4341 GIT binary patch literal 19772 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 KA2$~EWX``n*u&od literal 0 HcmV?d00001 diff --git a/src/OptAlgorithm/__pycache__/OptTimeCalculator.cpython-310.pyc b/src/OptAlgorithm/__pycache__/OptTimeCalculator.cpython-310.pyc index 02077f14f6810ec58564e9e300343bde9bdca47f..8594a34915d4fc841b0ca07379d42bdd31d4c59f 100644 GIT binary patch delta 19 ZcmbR2GuekLpO=@50SJ8EH*#^R0RSz11KI!p delta 19 ZcmbR2GuekLpO=@50SI*6Hga*Q0RSwx1GxYI diff --git a/src/controller/__pycache__/controller.cpython-310.pyc b/src/controller/__pycache__/controller.cpython-310.pyc index 6309ccb17f2d2f91fee4349680ed57b45ad2d4a9..e534f39e3f9de20bbe035a3964dcadcee2852092 100644 GIT binary patch delta 20 acmey)`JIzHpO=@50SJ8EGdFU-VF3U+odrk$ delta 20 acmey)`JIzHpO=@50SKy|CvW6_!vX+4dIk>w diff --git a/src/controller/__pycache__/converter.cpython-310.pyc b/src/controller/__pycache__/converter.cpython-310.pyc index 5575d0e00b3496c0611bdde70638a6ddfdbc1521..8433f9e4c6464fd63af95c963cb92974bdc80294 100644 GIT binary patch delta 19 ZcmdnQvx$c*pO=@50SJ8EH*#sP0RSm?1D5~* delta 19 ZcmdnQvx$c*pO=@50SJVhHgajO0RSih16Tk6 diff --git a/src/controller/__pycache__/mediator.cpython-310.pyc b/src/controller/__pycache__/mediator.cpython-310.pyc index 2131472c777740e83e7679f76a2229ac69fa96a6..bb4e17d76ac97189ade6f447462ed24277e554f1 100644 GIT binary patch delta 20 acmdnVwUdiGpO=@50SJ8EGdFVUu>t@u5(E(d delta 20 acmdnVwUdiGpO=@50SKy|CvW7|V+8;+?*!NY diff --git a/src/controller/__pycache__/monitor.cpython-310.pyc b/src/controller/__pycache__/monitor.cpython-310.pyc index d64290e6ac34c8de8211e566e756b65bbfd1a567..5adb3fe07b87f5210f8ed458cc512018e5a2c19f 100644 GIT binary patch delta 19 ZcmaDZ`dpMNpO=@50SJ8EH*($O0su3M1k3;c delta 19 ZcmaDZ`dpMNpO=@50SK1ZY~;Gj1pqZ(1sDJT diff --git a/src/controller/__pycache__/passportFormer.cpython-310.pyc b/src/controller/__pycache__/passportFormer.cpython-310.pyc index 0e0d3610a8f1733ddbe8649ec01b5e6f66dcbe55..d3bf4759911b40dba8da6ceaff0d3cf95462c579 100644 GIT binary patch delta 20 acmeyZ_*;=XpO=@50SJ8EGdFU75C8x@sRfV# delta 20 acmeyZ_*;=XpO=@50SF3zByZ&YAOHYDtp;BJ diff --git a/src/gui/__pycache__/mainGui.cpython-310.pyc b/src/gui/__pycache__/mainGui.cpython-310.pyc index daadeb43af0d19fff1136eabe667a2309d506a3b..df10a6fda581b79a2f504bf9417a7e8c11608be2 100644 GIT binary patch literal 8767 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 B%gg`( literal 7199 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 R_Lh&E#UOb&EAdxQ{{aMM=}`ax delta 1938 zcmZ`)-A^1<6rVd^J3G5O>;f*!N0nBp4j`>Gjl?Krji^JZ_vUHbS?+jKN zaFdn$)1%x};9&bjBDd(OF+ zpO0@2In`9kR^YkySE2Y%_mQ|-Ovw|fBr~{Z3Wtt&re)C% zngdOSc7n&Qhpb7vX%Dci^w4AM)ASi&+p<)LN*oTINmi@!;2H~p(o)eE_tf6{L_vcR z>^&w3_#)?j4zQ_hD?18N0&+)L)8I?pQP%WTeOp`Ab_hYezNzjI_%$|_9a2=+jKExs zQ9{*KgKBrRFUclZw6^0L$_Cj`H?Vp-HP$U$y{fe?+M9%$G%md>^P4Bgu2hl^E{&{VpTnt2(7bauQErykq+^T?uh|op$H}m)tj!#+x8Yo zA9=gxaj!BPaK?B}x|*xf6?CQWR)lsWjk)DgnZ`l%y8tZJBo?uWrCCJ3pEgXACi(+M zOOnO|V~UWRn2L=*hmk_P;+2*{qp$$$Bd^jmdgUDeJ>sWWND|^(D@T&zN9)+L`w4~` zXMXb<4Bs!T_}}#eNdMZC%q#cS%GJQ)-UPk@|z^$Xvz=**9bsBS!AzdvrN&&0*Q5@5&)z}i< zEBC8thMq(123rYrvw4z1-*PNQ@N*O|Uosg)T&i%io7u{LkR>tpqFBTaIom55WRqvT8@pK2v$3Kuzo zJ41;`#P2cjoij)r@rQFb^*RtRC4AXm;1`A2aw09;h>SAfTn{8LkK4kP9ezh%LZdRCtRKPi{~>#9atCFZW?NCi*n|4AMQOL$6C+Q zQXy#GbQ;u4jo&g~k(mo1@;4CPLU;#YSLGK`oS zAce`RaKy*Fz`G3XfA&audRF<6uDPh;8#SWV{|0;-gJo;Ss)Gm&nsN9l`35>vk{yPA8%qyNs}b}WwrkR D02+nq diff --git a/src/gui/__pycache__/settings_window.cpython-310.pyc b/src/gui/__pycache__/settings_window.cpython-310.pyc index 4157ffd565f6ff8ca45f4fc6db6d8a4c96600684..a6053f5ee471527d430a3c840dc7faab8decd2cc 100644 GIT binary patch delta 19 ZcmeyZ|689cpO=@50SJ8EH*$Rx2LL(*1xWw^ delta 19 ZcmeyZ|689cpO=@50SE$JHgbIw2LL(^1xf$_ diff --git a/src/gui/mainGui.py b/src/gui/mainGui.py index 5680fd8..a0ad32b 100644 --- a/src/gui/mainGui.py +++ b/src/gui/mainGui.py @@ -2,7 +2,7 @@ from datetime import datetime as dt from typing import Optional from PyQt5 import QtWidgets from PyQt5.QtCore import Qt -from PyQt5.QtGui import QPixmap +from PyQt5.QtGui import QPixmap, QIcon from utils.base.base import BaseMainWindow, BaseController from gui.settings_window import SystemSettings, OperatorSettings @@ -14,6 +14,9 @@ class MainWindow(BaseMainWindow): super().__init__() self._controller = controller self._init_startUI() + self._init_dock_widgets() + self._init_menu() + def _init_startUI(self) -> None: @@ -21,6 +24,9 @@ class MainWindow(BaseMainWindow): self.sysSettings = SystemSettings("params/system_params.json", 'System', self._transfer_settings) self.repSettings = ReportSettings() self.tabWidget = QtWidgets.QTabWidget() + self.tabWidget.setTabsClosable(True) + self.tabWidget.tabCloseRequested.connect(self._close_tab) + self.tabWidget.currentChanged.connect(self._on_tab_changed) self._clear() seeking_mode_btn = QtWidgets.QPushButton("Real time folder scanning") @@ -37,7 +43,7 @@ class MainWindow(BaseMainWindow): button_widget = QtWidgets.QWidget() button_widget.setLayout(button_layout) - mainLayout = self.layout() + mainLayout = self._central_layout label = QtWidgets.QLabel("Select work mode") label.setStyleSheet( """QLabel{ @@ -50,61 +56,121 @@ class MainWindow(BaseMainWindow): mainLayout.addWidget(label, alignment=Qt.AlignCenter) mainLayout.addWidget(button_widget) + def _init_dock_widgets(self) -> None: + """ + Инициализация док-виджетов для настроек. + """ + + # Создаем док-виджет для OperatorSettings + self.operator_dock = QtWidgets.QDockWidget("Operator Settings", self) + self.operator_dock.setWidget(self.operSettings) + self.operator_dock.setObjectName("OperatorSettings") + self.addDockWidget(Qt.RightDockWidgetArea, self.operator_dock) + self.operator_dock.hide() # Скрываем по умолчанию + + # Создаем док-виджет для SystemSettings + self.system_dock = QtWidgets.QDockWidget("System Settings", self) + self.system_dock.setWidget(self.sysSettings) + self.system_dock.setObjectName("SystemSettings") + self.addDockWidget(Qt.RightDockWidgetArea, self.system_dock) + self.system_dock.hide() # Скрываем по умолчанию + + # Создаем док-виджет для ReportSettings + self.report_dock = QtWidgets.QDockWidget("Report Settings", self) + self.report_dock.setWidget(self.repSettings) + self.report_dock.setObjectName("ReportSettings") + self.addDockWidget(Qt.RightDockWidgetArea, self.report_dock) + self.report_dock.hide() # Скрываем по умолчанию + + # Настройка док-виджетов + self._set_dock_features(self.operator_dock) + self._set_dock_features(self.system_dock) + self._set_dock_features(self.report_dock) + + def _init_menu(self) -> None: + """ + Инициализация главного меню. + """ + # Создаем главное меню + menu_bar = self.menuBar() + + # Создаем меню "Режимы" + modes_menu = menu_bar.addMenu("Mode") + settings_menu = menu_bar.addMenu("Settings") + + # Создаем действия для меню + seeking_action = QtWidgets.QAction("Real time folder scanning", self) + seeking_action.triggered.connect(self._init_seekingUI) + + raport_action = QtWidgets.QAction("Raport editor", self) + raport_action.triggered.connect(self._init_raportUI) + + system_settings = QtWidgets.QAction("System settings", self) + system_settings.setIcon(QIcon('resources/system_ico.png')) + system_settings.triggered.connect(lambda: self._toggle_visibility(self.system_dock)) + + operator_settings = QtWidgets.QAction("Operator settings", self) + operator_settings.setIcon(QIcon('resources/operator_ico.png')) + operator_settings.triggered.connect(lambda: self._toggle_visibility(self.operator_dock)) + + view_settings = QtWidgets.QAction("View settings", self) + view_settings.setIcon(QIcon('resources/view_ico.png')) + view_settings.triggered.connect(lambda: self._toggle_visibility(self.report_dock)) + + + # Добавляем действия в меню "Режимы" + modes_menu.addAction(seeking_action) + modes_menu.addAction(raport_action) + + settings_menu.addAction(system_settings) + settings_menu.addAction(operator_settings) + settings_menu.addAction(view_settings) + + + + def _toggle_visibility(self, body:QtWidgets.QDockWidget = None) -> None: + """ + Переключение видимости док-виджета. + """ + is_visible = body.isVisible() + body.setVisible(not is_visible) + + def _set_dock_features(self, body:QtWidgets.QDockWidget = None) -> None: + """ + Настройка флагов док-виджета. + """ + flag_move = QtWidgets.QDockWidget.DockWidgetMovable + flag_close = QtWidgets.QDockWidget.DockWidgetClosable + flag_floating = QtWidgets.QDockWidget.DockWidgetFloatable + body.setFeatures(flag_move | flag_close | flag_floating) + def _clear(self) -> None: - main = self.layout() - if self.layout() is not None: - while main.count(): - child = main.takeAt(0) + if self._central_layout is not None: + while self._central_layout.count(): + child = self._central_layout.takeAt(0) if child.widget() is not None: child.widget().deleteLater() - else: self.setLayout(QtWidgets.QVBoxLayout()) def _init_seekingUI(self) -> None: self._clear() self._transfer_settings() - self.tabWidget = QtWidgets.QTabWidget() - self.tabWidget.setTabsClosable(True) - self.tabWidget.tabCloseRequested.connect(self._close_tab) - - sys_settings_btn = QtWidgets.QPushButton("System settings") - sys_settings_btn.setFixedWidth(200) - sys_settings_btn.clicked.connect(lambda: self.sysSettings.show()) - oper_settings_btn = QtWidgets.QPushButton("Operator settings") - oper_settings_btn.setFixedWidth(200) - oper_settings_btn.clicked.connect(lambda: self.operSettings.show()) button_layout = QtWidgets.QHBoxLayout() button_layout.setSpacing(2) - button_layout.addWidget(sys_settings_btn) - button_layout.addWidget(oper_settings_btn) button_widget = QtWidgets.QWidget() button_widget.setLayout(button_layout) title = QtWidgets.QLabel("online mode") - mainLayout = self.layout() - mainLayout.addWidget(self.tabWidget) - mainLayout.addWidget(button_widget) - mainLayout.addWidget(title, alignment=Qt.AlignRight) + self._central_layout.addWidget(self.tabWidget) + self._central_layout.addWidget(button_widget) + self._central_layout.addWidget(title, alignment=Qt.AlignRight) self.resize(800,800) self._controller.seeking_mode() - # TODO:push seeking to mediator def _init_raportUI(self) -> None: self._clear() self._transfer_settings() - - self.tabWidget = QtWidgets.QTabWidget() - self.tabWidget.setTabsClosable(True) - self.tabWidget.tabCloseRequested.connect(self._close_tab) - sys_settings_btn = QtWidgets.QPushButton("System settings") - sys_settings_btn.setFixedWidth(185) - sys_settings_btn.clicked.connect(lambda: self.sysSettings.show()) - oper_settings_btn = QtWidgets.QPushButton("Operator settings") - oper_settings_btn.setFixedWidth(185) - oper_settings_btn.clicked.connect(lambda: self.operSettings.show()) - view_settings_btn = QtWidgets.QPushButton("Customize view") - view_settings_btn.setFixedWidth(185) - view_settings_btn.clicked.connect(self._customization_window) + save_screen_btn = QtWidgets.QPushButton("Save state") save_screen_btn.setFixedWidth(185) save_screen_btn.clicked.connect(self._save_plots) @@ -114,25 +180,18 @@ class MainWindow(BaseMainWindow): button_layout = QtWidgets.QHBoxLayout() button_layout.setSpacing(2) - button_layout.addWidget(sys_settings_btn) - button_layout.addWidget(oper_settings_btn) - button_layout.addWidget(view_settings_btn) + button_layout.addWidget(save_screen_btn) button_layout.addWidget(open_file_btn) button_widget = QtWidgets.QWidget() button_widget.setLayout(button_layout) title = QtWidgets.QLabel("raport mode") - mainLayout = self.layout() - mainLayout.addWidget(self.tabWidget) - mainLayout.addWidget(button_widget) - mainLayout.addWidget(title, alignment=Qt.AlignRight) + self._central_layout.addWidget(self.tabWidget) + self._central_layout.addWidget(button_widget) + self._central_layout.addWidget(title, alignment=Qt.AlignRight) self.resize(800,800) self._controller.raport_mode(None) - - #self._controller.raport_mode(path) - # TODO: push only one dir to monitor - def show_plot_tabs(self, plot_widgets: list[QtWidgets.QWidget]) -> None: for plot_widget in plot_widgets: @@ -149,7 +208,7 @@ class MainWindow(BaseMainWindow): tab_count = self.tabWidget.count() if tab_count > 10: - for i in range(0, tab_count-2): + for i in range(0, tab_count-10): self._close_tab(i) def keyPressEvent(self, a0) -> None: @@ -164,10 +223,6 @@ class MainWindow(BaseMainWindow): self.repSettings.close() super().closeEvent(a0) - def _show_settings(self) -> None: - self.operSettings.show() - self.sysSettings.show() - def _transfer_settings(self) -> None: self.tabWidget.clear() operator_params = self.operSettings.getParams() @@ -188,18 +243,20 @@ class MainWindow(BaseMainWindow): return CSV_path return None - def _customization_window(self) -> None: + def _on_tab_changed(self, index): tab = self.tabWidget.currentWidget() - reg_items = tab.property("reg_items") - curve_items = tab.property("curve_items") - self.repSettings.build(reg_items, curve_items) + if tab is not None and self.report_dock.isVisible(): + reg_items = tab.property("reg_items") + curve_items = tab.property("curve_items") + self.repSettings.build(index, reg_items, curve_items) def _save_plots(self) -> None: filepath, _ = QtWidgets.QFileDialog.getSaveFileName(self, "Save file", "", "Image Files (*.png *.jpeg)") tab = self.tabWidget.currentWidget() - pixmap = QPixmap(tab.size()) - tab.render(pixmap) - pixmap.save(filepath) + if tab is not None: + pixmap = QPixmap(tab.size()) + tab.render(pixmap) + pixmap.save(filepath) diff --git a/src/gui/reportGui.py b/src/gui/reportGui.py index 65ec102..10a7e59 100644 --- a/src/gui/reportGui.py +++ b/src/gui/reportGui.py @@ -2,28 +2,38 @@ import pyqtgraph as pg from pyqtgraph.parametertree import Parameter, ParameterTree from typing import Union from PyQt5 import QtWidgets +from cachetools import LRUCache class ReportSettings(QtWidgets.QWidget): + def __init__(self, parent = None): + super().__init__(parent) + #self._tab_cashe = LRUCache(maxsize=1000) - def build(self, reg_items: dict, curve_items: dict) -> None: + def build(self, index, reg_items: dict, curve_items: dict) -> None: """Создает ParameterTree для элементов всех графиков выбранной вкладки""" self._clear() param_tree = ParameterTree() layout = self.layout() layout.addWidget(param_tree) - + """if index in self._tab_cashe: + body = self._tab_cashe[index] + else: + body= [ + self._generate_reg_params(reg_items), + self._generate_curve_params(curve_items) + ] + self._tab_cashe[index] = body""" body= [ - self._generate_reg_params(reg_items), - self._generate_curve_params(curve_items) - ] + self._generate_reg_params(reg_items), + self._generate_curve_params(curve_items) + ] # Добавляем параметры в дерево params = Parameter.create(name='params', type='group', children=body) params.sigTreeStateChanged.connect( lambda: self._update_settings(reg_items, curve_items, params) ) param_tree.setParameters(params, showTop=False) - self.show() def _clear(self) -> None: """ diff --git a/src/utils/base/__pycache__/base.cpython-310.pyc b/src/utils/base/__pycache__/base.cpython-310.pyc index 88d1fa977ea1ca51ff871ae4ce3b97a7d6658cc7..61a7458f287df13111a0cfa9195e91f9e129a351 100644 GIT binary patch delta 6670 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 a3p%dp*KKuIxVzl>reywbzB|9Uu>1d25<+4C delta 6523 zcma)Adr+L!72mtNEW5BQ3t@pkb_vh02_yj$NDO&Ekh}~rCeezG>xTUxTbE^XcZq>! zvayNPR$Dcmh(iz**KRUH&r>&_qRr}C(j8)tEwW*EvVWyo{ZG3dpvFCR_Se6Y; zNQSfLo_k*RoO92;_xt#yc==)B8p_MdG10#_y2Ark?77#qK)iGBlD$b`3YkLLk%Ga3 z-U7zWk;2}2L^DTN@?T@<-js%wI*A-)!Ku>bE&J+1XDr$Qy8|Hdssq$yXg-<=0-C4!!DJAll z&>ew5UnCfh2LcmIBC_-;VGsMTB)^c$n9*3&lzFeZ!@jR=HMl4EmIJ>6AdQQLdhT#6 z6ijG=M0ikJgZXw<>DbzoF55htY*v3bqQ%!6QV%#53a5&-dRL@m$AoN|MOI>k8(EUT zs8^kGcvN*xTLq`80~0F%rh7|)8p+wXlGkL_%|mfLI}(m3LSe~)knnUe#Tzoj)!R8o zS2qz+ccv{_>RItbP$uMBu+J7HxmA59H_*^XJXCQ|BDX-3HJ%uX%@kI-O|5h`*tl$J z)hV~Pae5ufI_St)9BSw~(CgKs&W&p_BxXw9e}X@Bd>o* z_Gy7&Bod%F?ltV6%BxQz$`ni_N;VLn(r*L4Dh)@}Ch4dH;%6RI{g~B|1#VC~!EK$` zK+~v`a?CML`e`yL7lUO90QL??Tw=%R_Lv-sX)-Y)xnkF0b^`!>)opPtk_@gX`f=Qf$~|T-fDH! zaQz}oa@KH9b2O$lhaodVR@q7jTH95Fd!gu@wAVHVd+=~SWV--10IWy- zwPsYpCd^E)Ki%0k6g@~`4NyY}M!-<7F1l;Nyuu!gcK}>XfU>v&IPZO49cRwYnM+F? zH^^(i$)Vc?Y!AScX~rntCh1nU7L=<`TpsF-4)x=L$DKt)PLKNd-Gw)ajn@;^Z@q97 zGF-0=Ca7rA7w*K=jQ|E!ej3zAKoCqFZ!UU71VSHd>Pcc0a)~5 zVBYbbigD4%Qmp!MqV{GT3Jiv${1ZHs9s!6vq?T6h%3npOo*fSlM1zsItX20^J|G5Z zPZX(+s^V%cGWK3bctB^zQ;;=$26jq~R_$qGyQeY!3BZ#8PXYXb0PTHNZ%91@viC%F z*zq&M{MH_6nEQNnaed01d>UNLnr4b zp?2bW^%CsxQm0}H+SW;*WTjfYXhX6Zd{e2I;ZW4G_6>(4p&kg<6ZdFQhC4iM=;)z& zI&^ps9)spKfKCFmRla~9o8&q_0Xo%g(j>nEl=BXvv1*RcwEApi4fuh$+$^V zXX35+$LY$w>NS6{s8{d#mk7T2teBqTNwISoVi@xMhZC*hi^fJ#RDD?` zd&CuzqRO2R$j;2?pC;ETUjz0RfT`>-#@Q)Wc?~6^_(XoGTHA2kg__ZAv7ihNqIn{|=bofZSH+Pf@RF+KB_bSiajSqT-|`6i#5x4e2T zx8(wQT?YDw24hl-$7%Up-3N_aA6S0noNmgHr;BHlN~NoN#E^yk+@|Wwdb_=8zKt7L zjXK#fU)|PJJ7<%(Xps<`r1v}SWapbYE^Dr%xzq}C>Y^#<|iHq z=#i87`)N4j{I1L`<0Gnk3*c>lcL4qia1r2LQv<>GfWlY#A;7Fn@2onoqFS6a9^el3 z{T2I!M|oDZCGp%yn2woFic=#NSrbgE)JUl){tozIp1^Pmn7lO zlBsPd(WN;?;ZaSN(O_(%OL_>GnfsDxU!si0@ueomoRuS-!lt&jdX3vg&bZfF3uEcPfQ0saiReG1Ew4^=98}apTX%yk1l2*6T(?c! zubyA`u6RS8S^u2;ef|pYWUL$|`K)T`SmSvPv)uWg1jeU-n>yBU#P%k} zUsu_kKI4+joKLFdor@}_Yopg_e>fTn(4Tfli~moIAMETDC5AjH@!O>fIr<_LI@Ajr z%j*6K^o%jby`PomgNxm80?SkRU1i=3TTa84c2J8Z;$pnJ>w1xdCEB_c2w4G20ANnH z(7j&Iipg*^K>=Y?DJ#0o(9-LQ4bgnyz;G~{2-CaV1My-4{CQ0zMJ8Ri#&T=drF@_1*3f&px1i0GuQZSifrDRF&kr&2KTD>Id&)$W4Je0XG3| zT@zD)gA2vT2wm}lk2+F#jUa3{9H*_la2T+2AH}c@g84F zw9T-+j1W2$9Q|@=REyHAS)YC&eT<{B_Y<37*3c^7DiU0UL%N&v0m7yLB(GF*#|rT;^{pLi_UKvB;lbF5bdV9<5gR#>7@*g| ze)$bBIsse&I4>l&w&bG;S8Vwa0Bl_1i0Zhys?1HNG@5|R>YDFrbGc1Pcc0tkZYXT~ EKZpPnZvX%Q diff --git a/src/utils/base/base.py b/src/utils/base/base.py index 4d865d3..9306920 100644 --- a/src/utils/base/base.py +++ b/src/utils/base/base.py @@ -6,7 +6,7 @@ from cachetools import LRUCache import pandas as pd from PyQt5.QtCore import QObject, QTimer -from PyQt5.QtWidgets import QWidget, QTabWidget +from PyQt5.QtWidgets import QWidget, QTabWidget, QMainWindow, QVBoxLayout from OptAlgorithm import OptAlgorithm import numpy as np import pyqtgraph as pg @@ -393,13 +393,20 @@ class BaseIdealDataBuilder(OptAlgorithm): result = sum(self.get_ideal_timings()) return result -class BaseMainWindow(QWidget): +class BaseMainWindow(QMainWindow): def __init__(self, controller: Optional[BaseController] = None): super().__init__() - self.set_style(self) self.resize(200,200) self._controller = controller + # Создаем центральный виджет и устанавливаем его + self._central_widget = QWidget() + self.setCentralWidget(self._central_widget) + + # Устанавливаем основной вертикальный макет для центрального виджета + self._central_layout = QVBoxLayout() + self._central_widget.setLayout(self._central_layout) + self.set_style(self._central_widget) ... @property