def start(self, parameters: Parameters, images: list): self._abort = True if self.isRunning(): self.wait() self._morphotypes = parameters.selectedMorphotypes().keys() self._threshold = parameters.threshold() self._device_id = parameters.deviceId() self._srcPath = parameters.srcFolder() self._destPath = parameters.destFolder() self._images = images self._abort = False super().start()
def reset(self, parameters: Parameters): self._name_text.setText(parameters.name()) self._filepath_text.setText(parameters.srcFolder())
class ParametersController(BaseController): def __init__(self): super().__init__() title = PageTitle("Démarrer une analyse") title.backArrowClicked.connect(self._returnClicked) self._input_component = InputComponent() self._parameters_component = ParametersComponent() self._options_component = OptionsComponent() self._input_component.analysisNameStateChanged.connect( self._analysisNameStateChanged) self._start_button = StylizedButton("Démarrer", "blue") self._start_button.setSizePolicy(QSizePolicy.Maximum, QSizePolicy.Maximum) button_layout = QHBoxLayout() button_layout.setAlignment(Qt.AlignRight) button_layout.addWidget(self._start_button) main_layout = QVBoxLayout() main_layout.addWidget(title) main_layout.addWidget(self._input_component) main_layout.addWidget(self._parameters_component) main_layout.addWidget(self._options_component) main_layout.addLayout(button_layout) self.setLayout(main_layout) # Button slots self._start_button.clicked.connect(self._startClick) def start(self): self._parameters = Parameters() self._parameters.setName(HistoryManager.generateNewAnalysisName()) self._input_component.reset(self._parameters) self._parameters_component.reset(self._parameters) self._options_component.reset(self._parameters) @Slot(bool) def _analysisNameStateChanged(self, ok: bool): self._start_button.setEnabled(ok) @Slot() def _returnClicked(self): self.changeWidget.emit("/menu", None) @Slot() def _startClick(self): self._parameters_component.updateParameters(self._parameters) self._input_component.updateParameters(self._parameters) self._options_component.updateParameters(self._parameters) error = self._parameters.checkValidity() if error is None: images = QDir(self._parameters.srcFolder()).entryList( ["*.png", "*.jpg", "*.jpeg"], filters=QDir.Files) if len(images) == 0: error = "Le dossier source ne contient aucune image au format .jpg" if error is None: self.changeWidget.emit("/analysis", (self._parameters, images)) else: QMessageBox.warning(self, "Erreur", error)