# import system modules import sys # import project classes # import names from dialin.squish import utils, denaliMessages from dialin.squish.denaliMessages import txStates # Import PySide2 classes from PySide2 import QtCore, QtWidgets from PySide2.QtCore import Slot from runtimewidget import RunTimeWidget from plugins.ultrafiltration.ultrafiltration import Ultrafiltration from plugins.inlinebloodpressures.inlinebloodpressures import InlineBloodPressures from plugins.salinebolus.salinebolus import SalineBolus from plugins.treatmentstates.treatmentstates import TreatmentStates from plugins.treatmentranges.treatmentranges import TreatmentRanges class Simulator(RunTimeWidget): """ The simulator class which loads the ui file dynamically and initializes the objects and can be eventually shown. Note: this class is growing fast and seems like needs to be multiple classes """ # global variables declarations mdiArea: QtWidgets.QMdiArea obj_ultrafiltration: Ultrafiltration sub_ultrafiltration: QtWidgets.QMdiSubWindow wgt_ultrafiltration: QtWidgets.QWidget obj_inlinebloodpressures: InlineBloodPressures sub_inlinebloodpressures: QtWidgets.QMdiSubWindow wgt_inlinebloodpressures: QtWidgets.QWidget obj_salinebolus: SalineBolus sub_salinebolus: QtWidgets.QMdiSubWindow wgt_salinebolus: QtWidgets.QWidget obj_treatmentstates: TreatmentStates sub_treatmentstates: QtWidgets.QMdiSubWindow wgt_treatmentstates: QtWidgets.QWidget obj_treatmentranges: TreatmentRanges sub_treatmentranges: QtWidgets.QMdiSubWindow wgt_treatmentranges: QtWidgets.QWidget def __init__(self): super().__init__("simulator.ui") self.saline_requested_state = txStates.SALINE_BOLUS_STATE_IDLE self.initialize() self.mdiArea = self.find_widget(QtWidgets.QMdiArea, 'mdiArea') # ultrafiltration self.obj_ultrafiltration = Ultrafiltration() self.wgt_ultrafiltration = self.obj_ultrafiltration.window self.sub_ultrafiltration = self.mdiArea.addSubWindow(self.wgt_ultrafiltration) self.obj_inlinebloodpressures = InlineBloodPressures() self.wgt_inlinebloodpressures = self.obj_inlinebloodpressures.window self.sub_inlinebloodpressures = self.mdiArea.addSubWindow(self.wgt_inlinebloodpressures) self.obj_salinebolus = SalineBolus() self.wgt_salinebolus = self.obj_salinebolus.window self.sub_salinebolus = self.mdiArea.addSubWindow(self.wgt_salinebolus) self.obj_treatmentstates = TreatmentStates() self.wgt_treatmentstates = self.obj_treatmentstates.window self.sub_treatmentstates = self.mdiArea.addSubWindow(self.wgt_treatmentstates) self.obj_treatmentranges = TreatmentRanges() self.wgt_treatmentranges = self.obj_treatmentranges.window self.sub_treatmentranges = self.mdiArea.addSubWindow(self.wgt_treatmentranges) def initialize(self): """ initializes the class by calling it's initializer methods to make objects ready :return: none """ pass def main(): """ the main function which initializes the Simulator and starts it. :return: none """ utils.tstStart(__file__) # create qt application app = QtWidgets.QApplication(sys.argv) simulator = Simulator() simulator.show() utils.tstDone() # start qt application main loop sys.exit(app.exec_()) if __name__ == "__main__": QtCore.QCoreApplication.setAttribute(QtCore.Qt.AA_ShareOpenGLContexts) main()