Esempio n. 1
0
    def frame_pressed(self, frame: QFrame, event: QMouseEvent):
        if frame.parent().objectName() == "frm_values":
            if frame == self.selected_param_frame:  # Confirma el parámetro
                self.confirm_param()
                return
            elif not self.uncommited_change:
                self.unselect_child_frames(frame.parent())
                frame.setStyleSheet(st.qss_frm_selected)
                param_name = frame.objectName().replace("frm_param_", "")
                if param_name == "mode_dep_1":
                    if self.params['mode'].value == OpModEnum.vcv.value:
                        param_name = ParamEnum.tvm.name
                    elif self.params['mode'].value == OpModEnum.pcv.value:
                        param_name = ParamEnum.mp.name

                self.selected_param = param_name
                self.selected_param_frame = frame
                self.d_params = {}

                if param_name == ParamEnum.ier.name:
                    self.d_params[ParamEnum.ier_i.name] = {
                        'value': self.params[ParamEnum.ier_i.name].value,
                        'dependent': False
                    }
                    self.d_params[ParamEnum.ier_e.name] = {
                        'value': self.params[ParamEnum.ier_e.name].value,
                        'dependent': False
                    }
                    dep1 = Parameter.get_dependents(
                        self.params[ParamEnum.ier_i.name],
                        self.params[ParamEnum.mode.name].value)
                    dep2 = Parameter.get_dependents(
                        self.params[ParamEnum.ier_e.name],
                        self.params[ParamEnum.mode.name].value)
                    dependents = dep1 + list(set(dep2) - set(dep1))
                else:
                    self.d_params[param_name] = {
                        'value': self.params[param_name].value,
                        'dependent': False
                    }
                    dependents = Parameter.get_dependents(
                        self.params[param_name],
                        self.params[ParamEnum.mode.name].value)

                for dep in dependents:
                    self.d_params[dep] = {
                        'value': self.params[dep].value,
                        'dependent': True
                    }
                    frame_name = "frm_param_" + dep
                    f = self.findChild(QFrame, name=frame_name)
                    if f:
                        f.setStyleSheet(st.qss_frm_top + st.qss_lbl_yellow)

                self.setup_ui()
                self.update_ui()
                if param_name == ParamEnum.ier.name:
                    self.update_slider(
                        self.horizontalSlider,
                        self.d_params[ParamEnum.ier_i.name]['value'],
                        self.slider_value_changed)
                    self.update_slider(
                        self.horizontalSlider_2,
                        self.d_params[ParamEnum.ier_e.name]['value'],
                        self.slider_2_value_changed)
                else:
                    self.update_slider(self.horizontalSlider,
                                       self.d_params[param_name]['value'],
                                       self.slider_value_changed)
        elif frame.parent().objectName(
        ) == "frm_op_mode" and not self.uncommited_change:
            self.unselect_child_frames(frame.parent())
            frame.setFrameShadow(QFrame.Sunken)