Source code for ewoksfluo.gui.pick_scans_widget

from typing import Callable, Mapping, Optional
from AnyQt import QtWidgets
from ewoksorange.gui.parameterform import ParameterForm
from ewokscore import missing_data

from . import serialize


[docs]class PickScansWidget(QtWidgets.QWidget): def __init__( self, default_inputs_change_callback: Callable, initial_values: Optional[Mapping] = None, ): super().__init__() if initial_values is None: initial_values = {} self.form = ParameterForm(parent=self) self._default_inputs_change_callback = default_inputs_change_callback parameters = { "filename": { "label": "HDF5 filename", "value_for_type": "", "select": "file", }, "scan_min": { "label": "Minimum scan to include", "value_for_type": 1, }, "scan_max": { "label": "Maximum scan to include", "value_for_type": 1, }, "exclude_scans": { "label": "List of scans to exclude", "value_for_type": "", "serialize": serialize.integers_serializer, "deserialize": serialize.integers_deserializer, }, } for name, kw in parameters.items(): self.form.addParameter( name, value=initial_values.get(name, missing_data.MISSING_DATA), value_change_callback=self._default_inputs_changed, **kw, ) def _default_inputs_changed(self) -> None: self._default_inputs_change_callback(self.form.get_parameter_values())