def __init__(self, parent = None,name = None, fl = 0): """ Descript. : """ CreateTaskBase.__init__(self, parent, name, fl, 'Energy scan') if not name: self.setObjectName("create_energy_scan_widget") # Hardware objects ---------------------------------------------------- # Internal variables -------------------------------------------------- self.init_models() # Graphic elements ---------------------------------------------------- self._periodic_table_widget = PeriodicTableWidget(self) self._data_path_widget = DataPathWidget(self, data_model = self._path_template, layout = 'vertical') # Layout -------------------------------------------------------------- self.main_layout = QtGui.QVBoxLayout(self) self.main_layout.addWidget(self._periodic_table_widget) self.main_layout.addWidget(self._data_path_widget) self.main_layout.setContentsMargins(0, 0, 0, 0) self.main_layout.setSpacing(6) self.main_layout.addStretch(10) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ self._periodic_table_widget.elementEdgeSelectedSignal.\ connect(self.acq_parameters_changed) self._data_path_widget.pathTemplateChangedSignal.\ connect(self.acq_parameters_changed)
def __init__(self, parent=None, name=None, fl=0): CreateTaskBase.__init__(self, parent, name, fl, "Helical") if not name: self.setObjectName("create_helical_widget") self.init_models() # Hardware objects ---------------------------------------------------- # Internal variables -------------------------------------------------- self._lines_map = {} # Graphic elements ---------------------------------------------------- self._lines_widget = uic.loadUi( os.path.join(os.path.dirname(__file__), "ui_files/Qt4_helical_line_widget_layout.ui") ) self._acq_widget = AcquisitionWidget( self, "acquisition_widget", layout="vertical", acq_params=self._acquisition_parameters, path_template=self._path_template, ) self._data_path_widget = DataPathWidget( self, "create_dc_path_widget", data_model=self._path_template, layout="vertical" ) self._processing_widget = ProcessingWidget(self, data_model=self._processing_parameters) # Layout -------------------------------------------------------------- _main_vlayout = QtGui.QVBoxLayout(self) _main_vlayout.addWidget(self._lines_widget) _main_vlayout.addWidget(self._acq_widget) _main_vlayout.addWidget(self._data_path_widget) _main_vlayout.addWidget(self._processing_widget) _main_vlayout.addStretch(0) _main_vlayout.setSpacing(2) _main_vlayout.setContentsMargins(0, 0, 0, 0) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ self._lines_widget.lines_treewidget.itemSelectionChanged.connect(self.lines_treewidget_selection_changed) self._lines_widget.create_line_button.clicked.connect(self.create_line_button_clicked) self._lines_widget.remove_line_button.clicked.connect(self.remove_line_button_clicked) self._data_path_widget.data_path_layout.prefix_ledit.textChanged.connect(self._prefix_ledit_change) self._data_path_widget.data_path_layout.run_number_ledit.textChanged.connect(self._run_number_ledit_change) self._data_path_widget.pathTemplateChangedSignal.connect(self.handle_path_conflict) self._acq_widget.madEnergySelectedSignal.connect(self.mad_energy_selected) self._acq_widget.acqParametersChangedSignal.connect(self.handle_path_conflict) self._processing_widget.enableProcessingSignal.connect(self._enable_processing_toggled) # Other --------------------------------------------------------------- for col in range(self._lines_widget.lines_treewidget.columnCount()): self._lines_widget.lines_treewidget.resizeColumnToContents(col)
def __init__(self, parent=None, name=None, fl=0): """ Descript. : """ CreateTaskBase.__init__(self, parent, name, QtCore.Qt.WindowFlags(fl), "Standart") if not name: self.setObjectName("Qt4_create_discrete_widget") self.init_models() # Hardware objects ---------------------------------------------------- # Internal variables -------------------------------------------------- self.previous_energy = None self.init_models() # Graphic elements ---------------------------------------------------- self._acq_widget = AcquisitionWidget( self, "acquisition_widget", layout='vertical', acq_params=self._acquisition_parameters, path_template=self._path_template) self._data_path_widget = DataPathWidget(self, 'create_dc_path_widget', data_model=self._path_template, layout='vertical') self._processing_widget = ProcessingWidget( self, data_model=self._processing_parameters) # Layout -------------------------------------------------------------- _main_vlayout = QtGui.QVBoxLayout(self) _main_vlayout.addWidget(self._acq_widget) _main_vlayout.addWidget(self._data_path_widget) _main_vlayout.addWidget(self._processing_widget) _main_vlayout.addStretch(0) _main_vlayout.setSpacing(2) _main_vlayout.setContentsMargins(0, 0, 0, 0) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ self._data_path_widget.data_path_layout.prefix_ledit.textChanged.\ connect(self._prefix_ledit_change) self._data_path_widget.data_path_layout.run_number_ledit.textChanged.\ connect(self._run_number_ledit_change) self._data_path_widget.pathTemplateChangedSignal.connect(\ self.handle_path_conflict) self._acq_widget.acqParametersChangedSignal.connect(\ self.handle_path_conflict) self._acq_widget.madEnergySelectedSignal.connect(\ self.mad_energy_selected) self._processing_widget.enableProcessingSignal.connect(\ self._enable_processing_toggled)
def __init__(self, parent=None,name=None, fl=0): """ Descript. : """ CreateTaskBase.__init__(self, parent, name, fl, 'Energy scan') if not name: self.setObjectName("create_energy_scan_widget") # Hardware objects ---------------------------------------------------- # Internal variables -------------------------------------------------- self.init_models() # Graphic elements ---------------------------------------------------- self._periodic_table_widget = PeriodicTableWidget(self) self._data_path_widget = DataPathWidget(self, data_model = self._path_template, layout = 'vertical') _parameters_gbox = QGroupBox('Parameters', self) self._adjust_transmission_cbox = QCheckBox(\ "Adjust transmission", _parameters_gbox) self._adjust_transmission_cbox.setChecked(False) self._adjust_transmission_cbox.setEnabled(True) self._max_transmission_label = QLabel("Maximum transmission:") self._max_transmission_ledit = QLineEdit("20", _parameters_gbox) self._max_transmission_ledit.setFixedWidth(80) self._max_transmission_ledit.setEnabled(False) # Layout -------------------------------------------------------------- _parameters_gbox_hlayout = QGridLayout(_parameters_gbox) _parameters_gbox_hlayout.addWidget(self._adjust_transmission_cbox, 0, 0) _parameters_gbox_hlayout.addWidget(self._max_transmission_label, 1, 0) _parameters_gbox_hlayout.addWidget(self._max_transmission_ledit, 1, 1) _parameters_gbox_hlayout.setColumnStretch(2, 1) _parameters_gbox_hlayout.setSpacing(2) _main_vlayout = QVBoxLayout(self) _main_vlayout.addWidget(self._periodic_table_widget) _main_vlayout.addWidget(self._data_path_widget) _main_vlayout.addWidget(_parameters_gbox) _main_vlayout.setContentsMargins(2, 2, 2, 2) _main_vlayout.setSpacing(6) _main_vlayout.addStretch(10) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ #self._periodic_table_widget.elementEdgeSelectedSignal.connect(\ # self.acq_parameters_changed) self._data_path_widget.pathTemplateChangedSignal.connect(\ self.path_template_changed) self._adjust_transmission_cbox.stateChanged.connect(\ self.adjust_transmission_state_changed) self._max_transmission_ledit.textEdited.connect(\ self.max_transmission_value_changed) self._data_path_widget.data_path_layout.compression_cbox.setVisible(False)
def __init__(self, parent=None, name=None, fl=0): """ Descript. : """ CreateTaskBase.__init__(self, parent, name, fl, 'Energy scan') if not name: self.setObjectName("create_energy_scan_widget") # Hardware objects ---------------------------------------------------- # Internal variables -------------------------------------------------- self.init_models() # Graphic elements ---------------------------------------------------- self._periodic_table_widget = PeriodicTableWidget(self) self._data_path_widget = DataPathWidget(self, data_model=self._path_template, layout='vertical') _parameters_gbox = QGroupBox('Parameters', self) self._adjust_transmission_cbox = QCheckBox(\ "Adjust transmission", _parameters_gbox) self._adjust_transmission_cbox.setChecked(False) self._adjust_transmission_cbox.setEnabled(True) self._max_transmission_label = QLabel("Maximum transmission:") self._max_transmission_ledit = QLineEdit("20", _parameters_gbox) self._max_transmission_ledit.setFixedWidth(80) self._max_transmission_ledit.setEnabled(False) # Layout -------------------------------------------------------------- _parameters_gbox_hlayout = QGridLayout(_parameters_gbox) _parameters_gbox_hlayout.addWidget(self._adjust_transmission_cbox, 0, 0) _parameters_gbox_hlayout.addWidget(self._max_transmission_label, 1, 0) _parameters_gbox_hlayout.addWidget(self._max_transmission_ledit, 1, 1) _parameters_gbox_hlayout.setColumnStretch(2, 1) _parameters_gbox_hlayout.setSpacing(2) _main_vlayout = QVBoxLayout(self) _main_vlayout.addWidget(self._periodic_table_widget) _main_vlayout.addWidget(self._data_path_widget) _main_vlayout.addWidget(_parameters_gbox) _main_vlayout.setContentsMargins(2, 2, 2, 2) _main_vlayout.setSpacing(6) _main_vlayout.addStretch(10) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ #self._periodic_table_widget.elementEdgeSelectedSignal.connect(\ # self.acq_parameters_changed) self._data_path_widget.pathTemplateChangedSignal.connect(\ self.path_template_changed) self._adjust_transmission_cbox.stateChanged.connect(\ self.adjust_transmission_state_changed) self._max_transmission_ledit.textEdited.connect(\ self.max_transmission_value_changed)
def __init__(self, parent=None, name=None, fl=0): CreateTaskBase.__init__(self, parent, name, QtCore.Qt.WindowFlags(fl), 'XRF-scan') if name is not None: self.setObjectName(name) # Hardware objects ---------------------------------------------------- # Internal variables -------------------------------------------------- self.count_time = None self.init_models() # Graphic elements ---------------------------------------------------- self._data_path_gbox = QtGui.QGroupBox('Data location', self) self._data_path_widget = DataPathWidget(self._data_path_gbox, data_model=self._path_template, layout='vertical') _parameters_gbox = QtGui.QGroupBox('Parameters', self) _count_time_label = QtGui.QLabel("Count time (sec.):", _parameters_gbox) self.count_time_ledit = QtGui.QLineEdit("1", _parameters_gbox) self.count_time_ledit.setMaximumWidth(75) # Layout -------------------------------------------------------------- self._data_path_gbox_vlayout = QtGui.QVBoxLayout(self) self._data_path_gbox_vlayout.addWidget(self._data_path_widget) self._data_path_gbox_vlayout.setSpacing(0) self._data_path_gbox_vlayout.setContentsMargins(0, 0, 0, 0) self._data_path_gbox.setLayout(self._data_path_gbox_vlayout) _parameters_gbox_hlayout = QtGui.QHBoxLayout(self) _parameters_gbox_hlayout.addWidget(_count_time_label) _parameters_gbox_hlayout.addWidget(self.count_time_ledit) _parameters_gbox_hlayout.addStretch(0) _parameters_gbox_hlayout.setSpacing(2) _parameters_gbox_hlayout.setContentsMargins(0, 0, 0, 0) _parameters_gbox.setLayout(_parameters_gbox_hlayout) _main_vlayout = QtGui.QVBoxLayout(self) _main_vlayout.addWidget(self._data_path_gbox) _main_vlayout.addWidget(_parameters_gbox) _main_vlayout.setSpacing(2) _main_vlayout.setContentsMargins(2, 2, 2, 2) _main_vlayout.addStretch(0) self.setLayout(_main_vlayout) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ self._data_path_widget.data_path_layout.run_number_ledit.textChanged.\ connect(self._run_number_ledit_change) self.connect(self._data_path_widget, QtCore.SIGNAL("pathTemplateChanged"), self.handle_path_conflict)
def __init__(self, parent=None, name=None, fl=0): CreateTaskBase.__init__(self, parent, name, QtCore.Qt.WindowFlags(fl), 'GphlWorkflow') if not name: self.setObjectName("Qt4_create_gphl_workflow_widget") # Hardware objects ---------------------------------------------------- self._workflow_hwobj = None # Internal variables -------------------------------------------------- self.current_prefix = None self.init_models() # Graphic elements ---------------------------------------------------- self._workflow_type_widget = QtGui.QGroupBox('Workflow type', self) self._workflow_cbox = QtGui.QComboBox(self._workflow_type_widget) self._gphl_acq_widget = QtGui.QGroupBox('Acquisition', self) self._gphl_acq_param_widget = GphlAcquisitionWidget( self._gphl_acq_widget, "gphl_acquisition_parameter_widget") self._gphl_diffractcal_widget = GphlDiffractcalWidget( self._gphl_acq_widget, "gphl_diffractcal_widget") self._data_path_widget = DataPathWidget(self, 'create_dc_path_widget', layout='vertical') data_path_layout = self._data_path_widget.data_path_layout data_path_layout.file_name_label.hide() data_path_layout.file_name_value_label.hide() data_path_layout.run_number_label.hide() data_path_layout.run_number_ledit.hide() # Layout -------------------------------------------------------------- _workflow_type_vlayout = QtGui.QVBoxLayout(self._workflow_type_widget) _workflow_type_vlayout.addWidget(self._workflow_cbox) _gphl_acq_vlayout = QtGui.QVBoxLayout(self._gphl_acq_widget) _gphl_acq_vlayout.addWidget(self._gphl_acq_param_widget) _gphl_acq_vlayout.addWidget(self._gphl_diffractcal_widget) _main_vlayout = QtGui.QVBoxLayout(self) _main_vlayout.addWidget(self._workflow_type_widget) _main_vlayout.addWidget(self._data_path_widget) _main_vlayout.addWidget(self._gphl_acq_widget) _main_vlayout.addStretch(0) _main_vlayout.setSpacing(2) _main_vlayout.setContentsMargins(0, 0, 0, 0) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ self._workflow_cbox.currentIndexChanged[str].connect( self.workflow_selected) # set up popup data dialog self.gphl_data_dialog = GphlDataDialog(self, 'GPhL Workflow Data') self.gphl_data_dialog.setModal(True) self.gphl_data_dialog.continueClickedSignal.connect(self.data_acquired)
def __init__(self, parent = None, name = None, fl = 0): CreateTaskBase.__init__(self, parent, name, QtCore.Qt.WindowFlags(fl), 'XRF-scan') if name is not None: self.setObjectName(name) # Hardware objects ---------------------------------------------------- # Internal variables -------------------------------------------------- self.count_time = None self.init_models() # Graphic elements ---------------------------------------------------- self._data_path_gbox = QtGui.QGroupBox('Data location', self) self._data_path_widget = DataPathWidget(self._data_path_gbox, data_model = self._path_template, layout = 'vertical') _parameters_gbox = QtGui.QGroupBox('Parameters', self) _count_time_label = QtGui.QLabel("Count time (sec.):", _parameters_gbox) self.count_time_ledit = QtGui.QLineEdit("1", _parameters_gbox) self.count_time_ledit.setMaximumWidth(75) # Layout -------------------------------------------------------------- self._data_path_gbox_vlayout = QtGui.QVBoxLayout(self) self._data_path_gbox_vlayout.addWidget(self._data_path_widget) self._data_path_gbox_vlayout.setSpacing(0) self._data_path_gbox_vlayout.setContentsMargins(0, 0, 0, 0) self._data_path_gbox.setLayout(self._data_path_gbox_vlayout) _parameters_gbox_hlayout = QtGui.QHBoxLayout(self) _parameters_gbox_hlayout.addWidget(_count_time_label) _parameters_gbox_hlayout.addWidget(self.count_time_ledit) _parameters_gbox_hlayout.addStretch(0) _parameters_gbox_hlayout.setSpacing(2) _parameters_gbox_hlayout.setContentsMargins(0, 0, 0, 0) _parameters_gbox.setLayout(_parameters_gbox_hlayout) _main_vlayout = QtGui.QVBoxLayout(self) _main_vlayout.addWidget(self._data_path_gbox) _main_vlayout.addWidget(_parameters_gbox) _main_vlayout.setSpacing(2) _main_vlayout.setContentsMargins(2, 2, 2, 2) _main_vlayout.addStretch(0) self.setLayout(_main_vlayout) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ self._data_path_widget.data_path_layout.run_number_ledit.textChanged.\ connect(self._run_number_ledit_change) self.connect(self._data_path_widget, QtCore.SIGNAL("pathTemplateChanged"), self.handle_path_conflict)
def __init__(self, parent=None, name=None, fl=0): """ Descript. : """ CreateTaskBase.__init__(self, parent, name, Qt.WindowFlags(fl), "Standard") if not name: self.setObjectName("create_discrete_widget") # Hardware objects ---------------------------------------------------- # Internal variables -------------------------------------------------- self.init_models() # Graphic elements ---------------------------------------------------- self._acq_widget = AcquisitionWidget( self, "acquisition_widget", layout='vertical', acq_params=self._acquisition_parameters, path_template=self._path_template) self._data_path_widget = DataPathWidget(self, 'create_dc_path_widget', data_model=self._path_template, layout='vertical') self._processing_widget = ProcessingWidget( self, data_model=self._processing_parameters) # Layout -------------------------------------------------------------- _main_vlayout = QVBoxLayout(self) _main_vlayout.addWidget(self._acq_widget) _main_vlayout.addWidget(self._data_path_widget) _main_vlayout.addWidget(self._processing_widget) _main_vlayout.addStretch(0) _main_vlayout.setSpacing(6) _main_vlayout.setContentsMargins(2, 2, 2, 2) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ self._acq_widget.acqParametersChangedSignal.\ connect(self.acq_parameters_changed) self._data_path_widget.pathTemplateChangedSignal.\ connect(self.path_template_changed) self._acq_widget.madEnergySelectedSignal.connect(\ self.mad_energy_selected) self._processing_widget.enableProcessingSignal.connect(\ self._run_processing_toggled) self._acq_widget.acq_widget_layout.set_max_osc_range_button.clicked.\ connect(self.set_max_osc_total_range_clicked)
def __init__(self, parent=None, name=None, fl=0): CreateTaskBase.__init__(self, parent, name, Qt.WindowFlags(fl), 'XRF spectrum') if name is not None: self.setObjectName(name) # Hardware objects ---------------------------------------------------- # Internal variables -------------------------------------------------- self.count_time = None self.init_models() # Graphic elements ---------------------------------------------------- self._data_path_widget = DataPathWidget(self, data_model=self._path_template, layout='vertical') _parameters_gbox = QGroupBox('Parameters', self) _count_time_label = QLabel("Count time (sec.):", _parameters_gbox) self.count_time_ledit = QLineEdit("1", _parameters_gbox) #self.count_time_ledit.setMaximumWidth(75) self.adjust_transmission_cbox = QCheckBox(\ "Adjust transmission", _parameters_gbox) self.adjust_transmission_cbox.setChecked(True) # Layout -------------------------------------------------------------- _parameters_gbox_hlayout = QHBoxLayout(_parameters_gbox) _parameters_gbox_hlayout.addWidget(_count_time_label) _parameters_gbox_hlayout.addWidget(self.count_time_ledit) _parameters_gbox_hlayout.addWidget(self.adjust_transmission_cbox) _parameters_gbox_hlayout.addStretch(0) _parameters_gbox_hlayout.setSpacing(2) _parameters_gbox_hlayout.setContentsMargins(0, 0, 0, 0) _main_vlayout = QVBoxLayout(self) _main_vlayout.addWidget(self._data_path_widget) _main_vlayout.addWidget(_parameters_gbox) _main_vlayout.setSpacing(6) _main_vlayout.setContentsMargins(2, 2, 2, 2) _main_vlayout.addStretch(0) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ self._data_path_widget.pathTemplateChangedSignal.\ connect(self.path_template_changed) self.adjust_transmission_cbox.stateChanged.connect(\ self.adjust_transmission_state_changed) # Other --------------------------------------------------------------- self._data_path_widget.data_path_layout.compression_cbox.setVisible( False)
def __init__(self, parent=None, name=None, fl=0): """ Descript. : """ CreateTaskBase.__init__(self, parent, name, QtCore.Qt.WindowFlags(fl), "Standart") if not name: self.setObjectName("create_discrete_widget") self.init_models() # Hardware objects ---------------------------------------------------- # Internal variables -------------------------------------------------- self.previous_energy = None self.init_models() # Graphic elements ---------------------------------------------------- self._acq_widget = AcquisitionWidget(self, "acquisition_widget", layout='vertical', acq_params=self._acquisition_parameters, path_template=self._path_template) self._data_path_widget = DataPathWidget(self, 'create_dc_path_widget', data_model=self._path_template, layout='vertical') self._processing_widget = ProcessingWidget(self, data_model=self._processing_parameters) # Layout -------------------------------------------------------------- _main_vlayout = QtGui.QVBoxLayout(self) _main_vlayout.addWidget(self._acq_widget) _main_vlayout.addWidget(self._data_path_widget) _main_vlayout.addWidget(self._processing_widget) _main_vlayout.addStretch(0) _main_vlayout.setSpacing(2) _main_vlayout.setContentsMargins(0,0,0,0) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ self._acq_widget.acqParametersChangedSignal.\ connect(self.acq_parameters_changed) self._data_path_widget.pathTemplateChangedSignal.\ connect(self.acq_parameters_changed) self._acq_widget.madEnergySelectedSignal.connect(\ self.mad_energy_selected) self._processing_widget.enableProcessingSignal.connect(\ self._run_processing_toggled) # Other --------------------------------------------------------------- self._processing_widget.processing_widget.\ run_processing_parallel_cbox.hide()
def __init__(self, parent = None, name = None, fl = 0): CreateTaskBase.__init__(self, parent, name, Qt.WindowFlags(fl), 'XRF spectrum') if name is not None: self.setObjectName(name) # Hardware objects ---------------------------------------------------- # Internal variables -------------------------------------------------- self.count_time = None self.init_models() # Graphic elements ---------------------------------------------------- self._data_path_widget = DataPathWidget(self, data_model = self._path_template, layout = 'vertical') _parameters_gbox = QGroupBox('Parameters', self) _count_time_label = QLabel("Count time (sec.):", _parameters_gbox) self.count_time_ledit = QLineEdit("1", _parameters_gbox) #self.count_time_ledit.setMaximumWidth(75) self.adjust_transmission_cbox = QCheckBox(\ "Adjust transmission", _parameters_gbox) self.adjust_transmission_cbox.setChecked(True) # Layout -------------------------------------------------------------- _parameters_gbox_hlayout = QHBoxLayout(_parameters_gbox) _parameters_gbox_hlayout.addWidget(_count_time_label) _parameters_gbox_hlayout.addWidget(self.count_time_ledit) _parameters_gbox_hlayout.addWidget(self.adjust_transmission_cbox) _parameters_gbox_hlayout.addStretch(0) _parameters_gbox_hlayout.setSpacing(2) _parameters_gbox_hlayout.setContentsMargins(0, 0, 0, 0) _main_vlayout = QVBoxLayout(self) _main_vlayout.addWidget(self._data_path_widget) _main_vlayout.addWidget(_parameters_gbox) _main_vlayout.setSpacing(6) _main_vlayout.setContentsMargins(2, 2, 2, 2) _main_vlayout.addStretch(0) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ self._data_path_widget.pathTemplateChangedSignal.\ connect(self.path_template_changed) self.adjust_transmission_cbox.stateChanged.connect(\ self.adjust_transmission_state_changed) # Other --------------------------------------------------------------- self._data_path_widget.data_path_layout.compression_cbox.setVisible(False)
def __init__(self, parent=None, name=None, fl=0): CreateTaskBase.__init__(self, parent, name, Qt.WindowFlags(fl), 'XrayImaging') if not name: self.setObjectName("create_xray_imaging_widget") # Hardware objects ---------------------------------------------------- # Internal variables -------------------------------------------------- self._xray_imaging_parameters = None self._processing_parameters = None self.init_models() # Graphic elements ---------------------------------------------------- self._xray_imaging_parameters_widget = XrayImagingParametersWidget(\ self, 'xray_imaging_widget', xray_imaging_params=self._xray_imaging_parameters) self._acq_widget = AcquisitionWidget( self, "acquisition_widget", layout='vertical', acq_params=self._acquisition_parameters, path_template=self._path_template) self._acq_widget.grid_mode = False self._data_path_widget = DataPathWidget(self, 'create_dc_path_widget', data_model=self._path_template, layout='vertical') # Layout -------------------------------------------------------------- _main_vlayout = QVBoxLayout(self) _main_vlayout.addWidget(self._xray_imaging_parameters_widget) _main_vlayout.addWidget(self._acq_widget) _main_vlayout.addWidget(self._data_path_widget) _main_vlayout.addStretch(0) _main_vlayout.setSpacing(6) _main_vlayout.setContentsMargins(2, 2, 2, 2) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ self._acq_widget.acqParametersChangedSignal.\ connect(self.acq_parameters_changed) self._data_path_widget.pathTemplateChangedSignal.\ connect(self.path_template_changed) # Other --------------------------------------------------------------- self._acq_widget.use_osc_start(False) self._acq_widget.use_kappa(False)
def __init__(self, parent=None, name=None, fl=0): """ Descript. : """ CreateTaskBase.__init__(self, parent, name, fl, 'Energy scan') if not name: self.setObjectName("create_energy_scan_widget") # Hardware objects ---------------------------------------------------- # Internal variables -------------------------------------------------- self.init_models() # Graphic elements ---------------------------------------------------- self._periodic_table_widget = PeriodicTableWidget(self) self._data_path_gbox = QtGui.QGroupBox('Data location', self) self._data_path_widget = DataPathWidget(self._data_path_gbox, data_model=self._path_template, layout='vertical') # Layout -------------------------------------------------------------- self._data_path_gbox_vlayout = QtGui.QVBoxLayout(self) self._data_path_gbox_vlayout.addWidget(self._data_path_widget) self._data_path_gbox_vlayout.setSpacing(0) self._data_path_gbox_vlayout.setContentsMargins(0, 0, 0, 0) self._data_path_gbox.setLayout(self._data_path_gbox_vlayout) self.main_layout = QtGui.QVBoxLayout(self) self.main_layout.addWidget(self._periodic_table_widget) self.main_layout.addWidget(self._data_path_gbox) self.main_layout.addStretch(0) self.main_layout.setSpacing(0) self.main_layout.setContentsMargins(0, 0, 0, 0) self.setLayout(self.main_layout) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ self._data_path_widget.data_path_layout.run_number_ledit.textChanged.\ connect(self._run_number_ledit_change) self.connect(self._data_path_widget, QtCore.SIGNAL("pathTemplateChanged"), self.handle_path_conflict)
def __init__(self, parent = None,name = None, fl = 0): """ Descript. : """ CreateTaskBase.__init__(self, parent, name, fl, 'Energy scan') if not name: self.setObjectName("create_energy_scan_widget") # Hardware objects ---------------------------------------------------- # Internal variables -------------------------------------------------- self.init_models() # Graphic elements ---------------------------------------------------- self._periodic_table_widget = PeriodicTableWidget(self) self._data_path_gbox = QtGui.QGroupBox('Data location', self) self._data_path_widget = DataPathWidget(self._data_path_gbox, data_model = self._path_template, layout = 'vertical') # Layout -------------------------------------------------------------- self._data_path_gbox_vlayout = QtGui.QVBoxLayout(self) self._data_path_gbox_vlayout.addWidget(self._data_path_widget) self._data_path_gbox_vlayout.setSpacing(0) self._data_path_gbox_vlayout.setContentsMargins(0, 0, 0, 0) self._data_path_gbox.setLayout(self._data_path_gbox_vlayout) self.main_layout = QtGui.QVBoxLayout(self) self.main_layout.addWidget(self._periodic_table_widget) self.main_layout.addWidget(self._data_path_gbox) self.main_layout.addStretch(0) self.main_layout.setSpacing(0) self.main_layout.setContentsMargins(0, 0, 0, 0) self.setLayout(self.main_layout) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ self._data_path_widget.data_path_layout.run_number_ledit.textChanged.\ connect(self._run_number_ledit_change) self.connect(self._data_path_widget, QtCore.SIGNAL("pathTemplateChanged"), self.handle_path_conflict)
def __init__(self, parent = None, name = None, fl = 0): CreateTaskBase.__init__(self, parent, name, Qt.WindowFlags(fl), 'XRF spectrum') if name is not None: self.setObjectName(name) # Hardware objects ---------------------------------------------------- # Internal variables -------------------------------------------------- self.count_time = None self.init_models() # Graphic elements ---------------------------------------------------- self._data_path_widget = DataPathWidget(self, data_model = self._path_template, layout = 'vertical') self._parameters_widget = loadUi(os.path.join(os.path.dirname(__file__), "ui_files/Qt4_xrf_parameters_widget_layout.ui")) self.adjust_transmission_cbox = self._parameters_widget.adjust_transmission_cbox self.excitation_energy_ledit = self._parameters_widget.excitation_energy_ledit self.excitation_energy_ledit.setText("15.00") self.count_time_ledit = self._parameters_widget.count_time_ledit self.count_time_ledit.setText("10") # Layout -------------------------------------------------------------- _main_vlayout = QVBoxLayout(self) _main_vlayout.addWidget(self._data_path_widget) _main_vlayout.addWidget(self._parameters_widget) _main_vlayout.setSpacing(6) _main_vlayout.setContentsMargins(2, 2, 2, 2) _main_vlayout.addStretch(0) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ self._data_path_widget.pathTemplateChangedSignal.\ connect(self.path_template_changed) self.adjust_transmission_cbox.stateChanged.connect(\ self.adjust_transmission_state_changed)
def __init__(self,parent=None, name=None, fl=0): CreateTaskBase.__init__(self, parent, name, Qt.WindowFlags(fl), "Still") if not name: self.setObjectName("create_still_scan_widget") # Hardware objects ---------------------------------------------------- # Internal variables -------------------------------------------------- self.init_models() # Graphic elements ---------------------------------------------------- self._acq_widget = AcquisitionStillWidget(self, "acquisition_widget", layout='vertical', acq_params=self._acquisition_parameters, path_template=self._path_template) self._data_path_widget = DataPathWidget(self, 'create_dc_path_widget', data_model=self._path_template, layout='vertical') self._processing_widget = ProcessingWidget(self, data_model=self._processing_parameters) # Layout -------------------------------------------------------------- _main_vlayout = QVBoxLayout(self) _main_vlayout.addWidget(self._acq_widget) _main_vlayout.addWidget(self._data_path_widget) _main_vlayout.addWidget(self._processing_widget) _main_vlayout.addStretch(0) _main_vlayout.setSpacing(6) _main_vlayout.setContentsMargins(2, 2, 2, 2) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ self._acq_widget.acqParametersChangedSignal.\ connect(self.acq_parameters_changed) self._data_path_widget.pathTemplateChangedSignal.\ connect(self.path_template_changed) self._processing_widget.enableProcessingSignal.connect(\ self._run_processing_toggled)
def __init__(self, parent=None, name=None, fl=0, parent_class=None): """ Descript. : """ CreateTaskBase.__init__(self, parent, name, fl, 'Energy scan') if not name: self.setObjectName("create_energy_scan_widget") # Hardware objects ---------------------------------------------------- # Internal variables -------------------------------------------------- self.init_models() # Graphic elements ---------------------------------------------------- self._periodic_table_widget = PeriodicTableWidget(self) self._data_path_widget = DataPathWidget(self, data_model=self._path_template, layout='vertical') # Layout -------------------------------------------------------------- self.main_layout = QtGui.QVBoxLayout(self) self.main_layout.addWidget(self._periodic_table_widget) self.main_layout.addWidget(self._data_path_widget) self.main_layout.setContentsMargins(0, 0, 0, 0) self.main_layout.setSpacing(6) self.main_layout.addStretch(10) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ self._periodic_table_widget.elementEdgeSelectedSignal.connect(\ self.element_edge_selected) self._data_path_widget.data_path_layout.run_number_ledit.textChanged.\ connect(self._run_number_ledit_change) self._data_path_widget.pathTemplateChangedSignal.connect( self.handle_path_conflict)
def __init__(self, parent=None,name=None, fl=0): CreateTaskBase.__init__(self, parent, name, Qt.WindowFlags(fl), 'XrayImaging') if not name: self.setObjectName("create_xray_imaging_widget") # Hardware objects ---------------------------------------------------- # Internal variables -------------------------------------------------- self._xray_imaging_parameters = None self._processing_parameters = None self.init_models() # Graphic elements ---------------------------------------------------- self._xray_imaging_parameters_widget = XrayImagingParametersWidget(\ self, 'xray_imaging_widget', xray_imaging_params=self._xray_imaging_parameters) self._acq_widget = AcquisitionWidget(self, "acquisition_widget", layout='vertical', acq_params=self._acquisition_parameters, path_template=self._path_template) self._acq_widget.grid_mode = False self._data_path_widget = DataPathWidget(self, 'create_dc_path_widget', data_model=self._path_template, layout='vertical') # Layout -------------------------------------------------------------- _main_vlayout = QVBoxLayout(self) _main_vlayout.addWidget(self._xray_imaging_parameters_widget) _main_vlayout.addWidget(self._acq_widget) _main_vlayout.addWidget(self._data_path_widget) _main_vlayout.addStretch(0) _main_vlayout.setSpacing(6) _main_vlayout.setContentsMargins(2, 2, 2, 2) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ self._acq_widget.acqParametersChangedSignal.\ connect(self.acq_parameters_changed) self._data_path_widget.pathTemplateChangedSignal.\ connect(self.path_template_changed) # Other --------------------------------------------------------------- self._acq_widget.use_osc_start(False) self._acq_widget.use_kappa(False) self._acq_widget.acq_widget_layout.max_osc_range_cbx.setVisible(False) self._acq_widget.acq_widget_layout.first_image_label.setVisible(False) self._acq_widget.acq_widget_layout.first_image_ledit.setVisible(False) self._acq_widget.acq_widget_layout.detector_roi_mode_label.setVisible(False) self._acq_widget.acq_widget_layout.detector_roi_mode_combo.setVisible(False) self._acq_widget.acq_widget_layout.energies_combo.setVisible(False) self._acq_widget.acq_widget_layout.mad_cbox.setVisible(False) self._acq_widget.acq_widget_layout.energy_label.setVisible(False) self._acq_widget.acq_widget_layout.energy_ledit.setVisible(False) self._acq_widget.acq_widget_layout.transmission_label.setVisible(False) self._acq_widget.acq_widget_layout.transmission_ledit.setVisible(False) self._acq_widget.acq_widget_layout.resolution_label.setVisible(False) self._acq_widget.acq_widget_layout.resolution_ledit.setVisible(False) self._acq_widget.acq_widget_layout.kappa_label.setVisible(False) self._acq_widget.acq_widget_layout.kappa_ledit.setVisible(False) self._acq_widget.acq_widget_layout.kappa_phi_label.setVisible(False) self._acq_widget.acq_widget_layout.kappa_phi_ledit.setVisible(False) self._acq_widget.acq_widget_layout.shutterless_cbx.setVisible(False)
def __init__(self, parent = None,name = None, fl = 0): CreateTaskBase.__init__(self, parent, name, fl, 'Helical') if not name: self.setObjectName("create_helical_widget") # Hardware objects ---------------------------------------------------- # Internal variables -------------------------------------------------- self.init_models() self._prev_pos = None self._current_pos = None self._list_item_map = {} self.init_models() # Graphic elements ---------------------------------------------------- self._lines_gbox = QtGui.QGroupBox('Lines', self) self._lines_list_widget = QtGui.QListWidget(self._lines_gbox) self._lines_list_widget.setFixedWidth(300) self._lines_list_widget.setFixedHeight(100) self._lines_list_widget.setToolTip(\ "Select the line(s) to perfrom helical scan on") add_button = QtGui.QPushButton("+", self._lines_gbox) add_button.setFixedWidth(20) add_button.setFixedHeight(20) remove_button = QtGui.QPushButton("-", self._lines_gbox) remove_button.setFixedWidth(20) remove_button.setFixedHeight(20) add_button_tool_tip = "Add a line between two saved positions, " \ "CTRL click to select more than one position" add_button.setToolTip(add_button_tool_tip) remove_button_tool_tip = "Remove selected line(s)" remove_button.setToolTip(remove_button_tool_tip) self._acq_gbox = QtGui.QGroupBox('Acquisition', self) self._acq_widget = AcquisitionWidget(self._acq_gbox, "acquisition_widget", layout='vertical', acq_params=self._acquisition_parameters, path_template=self._path_template) self._data_path_gbox = QtGui.QGroupBox('Data location', self) self._data_path_widget = \ DataPathWidget(self._data_path_gbox, 'create_dc_path_widget', data_model=self._path_template, layout='vertical') self._processing_gbox = QtGui.QGroupBox('Processing', self) self._processing_gbox.setObjectName('processing_gbox') self._processing_widget = \ ProcessingWidget(self._processing_gbox, data_model=self._processing_parameters) # Layout -------------------------------------------------------------- _lines_gbox_gridlayout = QtGui.QGridLayout(self) _lines_gbox_gridlayout.addWidget(self._lines_list_widget, 0, 0, 2, 1) _lines_gbox_gridlayout.addWidget(add_button, 0, 1) _lines_gbox_gridlayout.addWidget(remove_button, 1, 1) _lines_gbox_gridlayout.setSpacing(2) _lines_gbox_gridlayout.setColumnStretch(2, 10) _lines_gbox_gridlayout.setContentsMargins(2, 2, 2, 2) self._lines_gbox.setLayout(_lines_gbox_gridlayout) _acq_gbox_layout = QtGui.QVBoxLayout(self) _acq_gbox_layout.addWidget(self._acq_widget) _acq_gbox_layout.setSpacing(0) _acq_gbox_layout.setContentsMargins(0,0,0,0) self._acq_gbox.setLayout(_acq_gbox_layout) _data_path_gbox_layout = QtGui.QVBoxLayout(self) _data_path_gbox_layout.addWidget(self._data_path_widget) _data_path_gbox_layout.setSpacing(0) _data_path_gbox_layout.setContentsMargins(0,0,0,0) self._data_path_gbox.setLayout(_data_path_gbox_layout) _processing_gbox_layout = QtGui.QVBoxLayout(self) _processing_gbox_layout.addWidget(self._processing_widget) _processing_gbox_layout.setSpacing(0) _processing_gbox_layout.setContentsMargins(0,0,0,0) self._processing_gbox.setLayout(_processing_gbox_layout) _main_vlayout = QtGui.QVBoxLayout(self) _main_vlayout.addWidget(self._lines_gbox) _main_vlayout.addWidget(self._acq_gbox) _main_vlayout.addWidget(self._data_path_gbox) _main_vlayout.addWidget(self._processing_gbox) _main_vlayout.addStretch(0) _main_vlayout.setSpacing(2) _main_vlayout.setContentsMargins(0,0,0,0) self.setLayout(_main_vlayout) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ add_button.clicked.connect(self.add_clicked) remove_button.clicked.connect(self.remove_clicked) self._data_path_widget.data_path_layout.prefix_ledit.textChanged.\ connect(self._prefix_ledit_change) self._data_path_widget.data_path_layout.run_number_ledit.textChanged.\ connect(self._run_number_ledit_change) QtCore.QObject.connect(self._lines_list_widget, QtCore.SIGNAL("selectionChanged()"), self.list_box_selection_changed) QtCore.QObject.connect(self._data_path_widget, QtCore.SIGNAL("pathTemplateChanged"), self.handle_path_conflict)
def __init__(self, parent=None, name=None, fl=0): """ Descript. : """ CreateTaskBase.__init__(self, parent, name, fl, 'Characterisation') self.setObjectName("create_char_widget") # Hardware objects ---------------------------------------------------- # Internal variables -------------------------------------------------- self._vertical_dimension_widget = None self._current_selected_item = None self.init_models() self._char_params_mib = DataModelInputBinder(self._char_params) # Graphic elements ---------------------------------------------------- self._acq_widget = \ AcquisitionWidgetSimple(self, acq_params = self._acquisition_parameters, path_template = self._path_template) self._data_path_widget = DataPathWidget(self, data_model=self._path_template, layout='vertical') self._vertical_dimension_widget = loadUi( os.path.join( os.path.dirname(__file__), 'ui_files/Qt4_vertical_crystal_dimension_widget_layout.ui')) self._char_widget = loadUi( os.path.join( os.path.dirname(__file__), 'ui_files/Qt4_characterise_simple_widget_vertical_layout.ui')) # Layout -------------------------------------------------------------- _main_vlayout = QVBoxLayout(self) _main_vlayout.addWidget(self._acq_widget) _main_vlayout.addWidget(self._data_path_widget) _main_vlayout.addWidget(self._char_widget) _main_vlayout.addWidget(self._vertical_dimension_widget) _main_vlayout.setContentsMargins(2, 2, 2, 2) _main_vlayout.setSpacing(6) _main_vlayout.addStretch(0) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ self._data_path_widget.pathTemplateChangedSignal.\ connect(self.path_template_changed) self._acq_widget.acqParametersChangedSignal.\ connect(self.acq_parameters_changed) self._vertical_dimension_widget.space_group_ledit.activated.\ connect(self._space_group_change) #self.connect(induced_burn_cbx, QtCore.SIGNAL("toggled(bool)"), # self.use_induced_burn) self._char_widget.characterisation_gbox.toggled.connect(\ self.characterisation_gbox_toggled) self._char_widget.wait_result_cbx.toggled.connect(\ self.wait_results_cbx_toggled) self._char_widget.execute_plan_cbx.toggled.connect(\ self.run_diffraction_plan_cbx_toggled) # Other --------------------------------------------------------------- self._char_params_mib.bind_value_update( 'opt_sad', self._char_widget.optimised_sad_cbx, bool, None) self._char_params_mib.bind_value_update( 'account_rad_damage', self._char_widget.account_rad_dmg_cbx, bool, None) #self._char_params_mib.bind_value_update('determine_rad_params', # induced_burn_cbx, # bool, None) self._char_params_mib.bind_value_update( 'strategy_complexity', self._char_widget.start_comp_cbox, int, None) self._char_params_mib.\ bind_value_update('max_crystal_vdim', self._vertical_dimension_widget.max_vdim_ledit, float, QDoubleValidator(0.0, 1000, 2, self)) self._char_params_mib.\ bind_value_update('min_crystal_vdim', self._vertical_dimension_widget.min_vdim_ledit, float, QDoubleValidator(0.0, 1000, 2, self)) self._char_params_mib.\ bind_value_update('min_crystal_vphi', self._vertical_dimension_widget.min_vphi_ledit, float, QDoubleValidator(0.0, 1000, 2, self)) self._char_params_mib.\ bind_value_update('max_crystal_vphi', self._vertical_dimension_widget.max_vphi_ledit, float, QDoubleValidator(0.0, 1000, 2, self)) self._vertical_dimension_widget.space_group_ledit.addItems( XTAL_SPACEGROUPS)
def __init__(self, parent=None, name=None, fl=0): CreateTaskBase.__init__(self, parent, name, fl, 'Helical') if not name: self.setObjectName("create_helical_widget") # Hardware objects ---------------------------------------------------- # Internal variables -------------------------------------------------- self.init_models() self._prev_pos = None self._current_pos = None self._list_item_map = {} self.init_models() # Graphic elements ---------------------------------------------------- self._lines_gbox = QtGui.QGroupBox('Lines', self) self._lines_list_widget = QtGui.QListWidget(self._lines_gbox) self._lines_list_widget.setFixedWidth(300) self._lines_list_widget.setFixedHeight(100) self._lines_list_widget.setToolTip(\ "Select the line(s) to perfrom helical scan on") add_button = QtGui.QPushButton("+", self._lines_gbox) add_button.setFixedWidth(20) add_button.setFixedHeight(20) remove_button = QtGui.QPushButton("-", self._lines_gbox) remove_button.setFixedWidth(20) remove_button.setFixedHeight(20) add_button_tool_tip = "Add a line between two saved positions, " \ "CTRL click to select more than one position" add_button.setToolTip(add_button_tool_tip) remove_button_tool_tip = "Remove selected line(s)" remove_button.setToolTip(remove_button_tool_tip) self._acq_widget = AcquisitionWidget( self, "acquisition_widget", layout='vertical', acq_params=self._acquisition_parameters, path_template=self._path_template) self._data_path_gbox = QtGui.QGroupBox('Data location', self) self._data_path_widget = \ DataPathWidget(self._data_path_gbox, 'create_dc_path_widget', data_model=self._path_template, layout='vertical') self._processing_gbox = QtGui.QGroupBox('Processing', self) self._processing_gbox.setObjectName('processing_gbox') self._processing_widget = \ ProcessingWidget(self._processing_gbox, data_model=self._processing_parameters) # Layout -------------------------------------------------------------- _lines_gbox_gridlayout = QtGui.QGridLayout(self) _lines_gbox_gridlayout.addWidget(self._lines_list_widget, 0, 0, 2, 1) _lines_gbox_gridlayout.addWidget(add_button, 0, 1) _lines_gbox_gridlayout.addWidget(remove_button, 1, 1) _lines_gbox_gridlayout.setSpacing(2) _lines_gbox_gridlayout.setColumnStretch(2, 10) _lines_gbox_gridlayout.setContentsMargins(2, 2, 2, 2) self._lines_gbox.setLayout(_lines_gbox_gridlayout) _data_path_gbox_layout = QtGui.QVBoxLayout(self) _data_path_gbox_layout.addWidget(self._data_path_widget) _data_path_gbox_layout.setSpacing(0) _data_path_gbox_layout.setContentsMargins(0, 0, 0, 0) self._data_path_gbox.setLayout(_data_path_gbox_layout) _processing_gbox_layout = QtGui.QVBoxLayout(self) _processing_gbox_layout.addWidget(self._processing_widget) _processing_gbox_layout.setSpacing(0) _processing_gbox_layout.setContentsMargins(0, 0, 0, 0) self._processing_gbox.setLayout(_processing_gbox_layout) _main_vlayout = QtGui.QVBoxLayout(self) _main_vlayout.addWidget(self._lines_gbox) _main_vlayout.addWidget(self._acq_widget) _main_vlayout.addWidget(self._data_path_gbox) _main_vlayout.addWidget(self._processing_gbox) _main_vlayout.addStretch(0) _main_vlayout.setSpacing(2) _main_vlayout.setContentsMargins(0, 0, 0, 0) self.setLayout(_main_vlayout) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ add_button.clicked.connect(self.add_clicked) remove_button.clicked.connect(self.remove_clicked) self._data_path_widget.data_path_layout.prefix_ledit.textChanged.\ connect(self._prefix_ledit_change) self._data_path_widget.data_path_layout.run_number_ledit.textChanged.\ connect(self._run_number_ledit_change) QtCore.QObject.connect(self._lines_list_widget, QtCore.SIGNAL("selectionChanged()"), self.list_box_selection_changed) QtCore.QObject.connect(self._data_path_widget, QtCore.SIGNAL("pathTemplateChanged"), self.handle_path_conflict)
def __init__(self, parent=None, name=None, fl=0): """ Descript. : """ CreateTaskBase.__init__(self, parent, name, fl, 'Characterisation') if not name: self.setName("create_char_widget") # Hardware objects ---------------------------------------------------- # Internal variables -------------------------------------------------- self._current_selected_item = None self.init_models() self._char_params_mib = DataModelInputBinder(self._char_params) # Graphic elements ---------------------------------------------------- self._acq_widget = \ AcquisitionWidgetSimple(self, acq_params = self._acquisition_parameters, path_template = self._path_template) self._data_path_gbox = QtGui.QGroupBox('Data location', self) self._data_path_widget = DataPathWidget(self._data_path_gbox, data_model=self._path_template, layout='vertical') self._vertical_dimension_widget = uic.loadUi( os.path.join( os.path.dirname(__file__), 'ui_files/Qt4_vertical_crystal_dimension_widget_layout.ui')) self._char_widget = uic.loadUi( os.path.join( os.path.dirname(__file__), 'ui_files/Qt4_characterise_simple_widget_vertical_layout.ui')) gbox = self._char_widget.findChild(QtGui.QGroupBox, "characterisation_gbox") p = gbox.palette() p.setColor(QtGui.QPalette.Window, QtCore.Qt.red) p.setColor(QtGui.QPalette.Highlight, QtCore.Qt.red) gbox.setPalette(p) # Layout -------------------------------------------------------------- _data_path_gbox_layout = QtGui.QVBoxLayout(self) _data_path_gbox_layout.addWidget(self._data_path_widget) _data_path_gbox_layout.setSpacing(0) _data_path_gbox_layout.setContentsMargins(0, 0, 0, 0) self._data_path_gbox.setLayout(_data_path_gbox_layout) _main_vlayout = QtGui.QVBoxLayout(self) _main_vlayout.addWidget(self._acq_widget) _main_vlayout.addWidget(self._data_path_gbox) _main_vlayout.addWidget(self._char_widget) _main_vlayout.addWidget(self._vertical_dimension_widget) _main_vlayout.setSpacing(0) _main_vlayout.setContentsMargins(0, 0, 0, 0) self.setLayout(_main_vlayout) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ # Other --------------------------------------------------------------- self._char_params_mib.bind_value_update( 'opt_sad', self._char_widget.optimised_sad_cbx, bool, None) self._char_params_mib.bind_value_update( 'account_rad_damage', self._char_widget.account_rad_dmg_cbx, bool, None) #self._char_params_mib.bind_value_update('determine_rad_params', # induced_burn_cbx, # bool, None) self._char_params_mib.bind_value_update( 'strategy_complexity', self._char_widget.start_comp_cbox, int, None) self._char_params_mib.\ bind_value_update('max_crystal_vdim', self._vertical_dimension_widget.max_vdim_ledit, float, QtGui.QDoubleValidator(0.0, 1000, 2, self)) self._char_params_mib.\ bind_value_update('min_crystal_vdim', self._vertical_dimension_widget.min_vdim_ledit, float, QtGui.QDoubleValidator(0.0, 1000, 2, self)) self._char_params_mib.\ bind_value_update('min_crystal_vphi', self._vertical_dimension_widget.min_vphi_ledit, float, QtGui.QDoubleValidator(0.0, 1000, 2, self)) self._char_params_mib.\ bind_value_update('max_crystal_vphi', self._vertical_dimension_widget.max_vphi_ledit, float, QtGui.QDoubleValidator(0.0, 1000, 2, self)) self._vertical_dimension_widget.space_group_ledit.addItems( XTAL_SPACEGROUPS) self._data_path_widget.data_path_layout.prefix_ledit.textChanged.\ connect(self._prefix_ledit_change) self._data_path_widget.data_path_layout.run_number_ledit.textChanged.\ connect(self._run_number_ledit_change) self._vertical_dimension_widget.space_group_ledit.activated.\ connect(self._space_group_change) self.connect(self._data_path_widget, QtCore.SIGNAL("pathTemplateChanged"), self.handle_path_conflict)
def __init__(self, parent = None,name = None, fl = 0): CreateTaskBase.__init__(self, parent, name, fl, 'Helical') if not name: self.setObjectName("create_helical_widget") self.init_models() # Hardware objects ---------------------------------------------------- # Internal variables -------------------------------------------------- self._lines_map = {} # Graphic elements ---------------------------------------------------- self._lines_widget = loadUi(os.path.join(\ os.path.dirname(__file__), "ui_files/Qt4_helical_line_widget_layout.ui")) self._acq_widget = AcquisitionWidget(self, "acquisition_widget", layout='vertical', acq_params=self._acquisition_parameters, path_template=self._path_template) self._data_path_widget = DataPathWidget(self, 'create_dc_path_widget', data_model=self._path_template, layout='vertical') self._processing_widget = ProcessingWidget(self, data_model=self._processing_parameters) # Layout -------------------------------------------------------------- _main_vlayout = QVBoxLayout(self) _main_vlayout.addWidget(self._lines_widget) _main_vlayout.addWidget(self._acq_widget) _main_vlayout.addWidget(self._data_path_widget) _main_vlayout.addWidget(self._processing_widget) _main_vlayout.addStretch(0) _main_vlayout.setSpacing(6) _main_vlayout.setContentsMargins(2, 2, 2, 2) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ self._lines_widget.lines_treewidget.itemSelectionChanged.connect(\ self.lines_treewidget_selection_changed) self._lines_widget.create_line_button.clicked.connect(\ self.create_line_button_clicked) self._lines_widget.create_auto_line_button.clicked.connect(\ self.create_auto_line_button_clicked) self._lines_widget.remove_line_button.clicked.connect(\ self.remove_line_button_clicked) self._lines_widget.overlay_cbox.stateChanged.connect(\ self.overlay_toggled) self._lines_widget.overlay_slider.valueChanged.connect(\ self.overlay_alpha_changed) self._lines_widget.swap_points_button.clicked.connect(\ self.swap_points_clicked) self._acq_widget.acqParametersChangedSignal.\ connect(self.acq_parameters_changed) self._acq_widget.madEnergySelectedSignal.connect(\ self.mad_energy_selected) self._data_path_widget.pathTemplateChangedSignal.\ connect(self.path_template_changed) self._processing_widget.enableProcessingSignal.connect(\ self._run_processing_toggled) # Other --------------------------------------------------------------- for col in range(self._lines_widget.lines_treewidget.columnCount()): self._lines_widget.lines_treewidget.resizeColumnToContents(col) #self._processing_widget.processing_widget.\ # run_processing_parallel_cbox.setChecked(False) self.enable_widgets(False)
def __init__(self, parent=None, name=None, fl=0): CreateTaskBase.__init__(self, parent, name, QtCore.Qt.WindowFlags(fl), "Advanced") if not name: self.setObjectName("create_advanced_widget") # Hardware objects ---------------------------------------------------- # Internal variables -------------------------------------------------- self.init_models() self._advanced_methods = None self._grid_map = {} # Graphic elements ---------------------------------------------------- self._advanced_methods_widget = uic.loadUi( os.path.join(os.path.dirname(__file__), "ui_files/Qt4_advanced_methods_layout.ui") ) self._acq_widget = AcquisitionWidget( self, "acquisition_widget", layout="vertical", acq_params=self._acquisition_parameters, path_template=self._path_template, ) self._data_path_widget = DataPathWidget( self, "create_dc_path_widget", data_model=self._path_template, layout="vertical" ) # Layout -------------------------------------------------------------- _main_vlayout = QtGui.QVBoxLayout(self) _main_vlayout.addWidget(self._advanced_methods_widget) _main_vlayout.addWidget(self._acq_widget) _main_vlayout.addWidget(self._data_path_widget) _main_vlayout.addStretch(0) _main_vlayout.setSpacing(2) _main_vlayout.setContentsMargins(2, 2, 2, 2) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ self._data_path_widget.data_path_layout.prefix_ledit.textChanged.connect(self._prefix_ledit_change) self._data_path_widget.data_path_layout.run_number_ledit.textChanged.connect(self._run_number_ledit_change) self._data_path_widget.pathTemplateChangedSignal.connect(self.handle_path_conflict) self._acq_widget.acqParametersChangedSignal.connect(self.handle_path_conflict) self._acq_widget.madEnergySelectedSignal.connect(self.mad_energy_selected) self._advanced_methods_widget.grid_treewidget.itemSelectionChanged.connect( self.grid_treewidget_item_selection_changed ) self._advanced_methods_widget.draw_grid_button.clicked.connect(self.draw_grid_button_clicked) self._advanced_methods_widget.remove_grid_button.clicked.connect(self.remove_grid_button_clicked) self._advanced_methods_widget.hor_spacing_ledit.textChanged.connect(self.spacing_changed) self._advanced_methods_widget.ver_spacing_ledit.textChanged.connect(self.spacing_changed) self._advanced_methods_widget.move_right_button.clicked.connect(lambda: self.move_grid("right")) self._advanced_methods_widget.move_left_button.clicked.connect(lambda: self.move_grid("left")) self._advanced_methods_widget.move_up_button.clicked.connect(lambda: self.move_grid("up")) self._advanced_methods_widget.move_down_button.clicked.connect(lambda: self.move_grid("down")) self._advanced_methods_widget.overlay_cbox.toggled.connect(self.overlay_cbox_toggled) self._advanced_methods_widget.overlay_alpha_progressbar.valueChanged.connect(self.overlay_alpha_changed) self._advanced_methods_widget.move_to_grid_button.clicked.connect(self.move_to_grid) # Other --------------------------------------------------------------- self._acq_widget.use_osc_start(False) self._acq_widget.use_kappa(False) self._acq_widget.use_kappa_phi(False) self._acq_widget.acq_widget_layout.num_images_label.setEnabled(False) self._acq_widget.acq_widget_layout.num_images_ledit.setEnabled(False) for col in range(self._advanced_methods_widget.grid_treewidget.columnCount()): self._advanced_methods_widget.grid_treewidget.resizeColumnToContents(col)
def __init__(self, parent=None, name=None, fl=0): """ Descript. : """ CreateTaskBase.__init__(self, parent, name, QtCore.Qt.WindowFlags(fl), "Standart") if not name: self.setObjectName("Qt4_create_discrete_widget") # Hardware objects ---------------------------------------------------- # Internal variables -------------------------------------------------- self.previous_energy = None self.init_models() # Graphic elements ---------------------------------------------------- self._acq_widget = AcquisitionWidget( self, "acquisition_widget", layout='vertical', acq_params=self._acquisition_parameters, path_template=self._path_template) self._data_path_gbox = QtGui.QGroupBox('Data location', self) self._data_path_gbox.setObjectName('data_path_gbox') self._data_path_widget = \ DataPathWidget(self._data_path_gbox, 'create_dc_path_widget', data_model=self._path_template, layout='vertical') self._processing_gbox = QtGui.QGroupBox('Processing', self) self._processing_gbox.setObjectName('processing_gbox') self._processing_widget = \ ProcessingWidget(self._processing_gbox, data_model=self._processing_parameters) # Layout -------------------------------------------------------------- self._data_path_gbox_layout = QtGui.QVBoxLayout(self) self._data_path_gbox_layout.addWidget(self._data_path_widget) self._data_path_gbox_layout.setSpacing(0) self._data_path_gbox_layout.setContentsMargins(0, 0, 0, 0) self._data_path_gbox.setLayout(self._data_path_gbox_layout) self._processing_gbox_layout = QtGui.QVBoxLayout(self) self._processing_gbox_layout.addWidget(self._processing_widget) self._processing_gbox_layout.setSpacing(0) self._processing_gbox_layout.setContentsMargins(0, 0, 0, 0) self._processing_gbox.setLayout(self._processing_gbox_layout) self.main_layout = QtGui.QVBoxLayout(self) self.main_layout.addWidget(self._acq_widget) self.main_layout.addWidget(self._data_path_gbox) self.main_layout.addWidget(self._processing_gbox) self.main_layout.addSpacing(10) self.main_layout.setSpacing(0) self.main_layout.setContentsMargins(0, 0, 0, 0) self.setLayout(self.main_layout) # SizePolicies -------------------------------------------------------- """self._acq_widget.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) self._data_path_gbox.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) self._processing_gbox.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)""" # Qt signal/slot connections ------------------------------------------ self._processing_gbox.toggled.connect(self._use_processing_toggled) self._data_path_widget.data_path_layout.prefix_ledit.textChanged.\ connect(self._prefix_ledit_change) self._data_path_widget.data_path_layout.run_number_ledit.textChanged.\ connect(self._run_number_ledit_change) self.connect(self._acq_widget, QtCore.SIGNAL('mad_energy_selected'), self.mad_energy_selected) self.connect(self._acq_widget, QtCore.SIGNAL("pathTemplateChanged"), self.handle_path_conflict) self.connect(self._data_path_widget, QtCore.SIGNAL("pathTemplateChanged"), self.handle_path_conflict)
def __init__(self, parent=None, name=None, fl=0): CreateTaskBase.__init__(self, parent, name, fl, 'Helical') if not name: self.setObjectName("create_helical_widget") self.init_models() # Hardware objects ---------------------------------------------------- # Internal variables -------------------------------------------------- self._lines_map = {} # Graphic elements ---------------------------------------------------- self._lines_widget = loadUi(os.path.join(\ os.path.dirname(__file__), "ui_files/Qt4_helical_line_widget_layout.ui")) self._acq_widget = AcquisitionWidget( self, "acquisition_widget", layout='vertical', acq_params=self._acquisition_parameters, path_template=self._path_template) self._data_path_widget = DataPathWidget(self, 'create_dc_path_widget', data_model=self._path_template, layout='vertical') self._processing_widget = ProcessingWidget( self, data_model=self._processing_parameters) # Layout -------------------------------------------------------------- _main_vlayout = QVBoxLayout(self) _main_vlayout.addWidget(self._lines_widget) _main_vlayout.addWidget(self._acq_widget) _main_vlayout.addWidget(self._data_path_widget) _main_vlayout.addWidget(self._processing_widget) _main_vlayout.addStretch(0) _main_vlayout.setSpacing(6) _main_vlayout.setContentsMargins(2, 2, 2, 2) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ self._lines_widget.lines_treewidget.itemSelectionChanged.connect(\ self.lines_treewidget_selection_changed) self._lines_widget.create_line_button.clicked.connect(\ self.create_line_button_clicked) self._lines_widget.create_auto_line_button.clicked.connect(\ self.create_auto_line_button_clicked) self._lines_widget.remove_line_button.clicked.connect(\ self.remove_line_button_clicked) self._lines_widget.overlay_cbox.stateChanged.connect(\ self.overlay_toggled) self._lines_widget.overlay_slider.valueChanged.connect(\ self.overlay_alpha_changed) self._lines_widget.swap_points_button.clicked.connect(\ self.swap_points_clicked) self._acq_widget.acqParametersChangedSignal.\ connect(self.acq_parameters_changed) self._acq_widget.madEnergySelectedSignal.connect(\ self.mad_energy_selected) self._acq_widget.acq_widget_layout.set_max_osc_range_button.clicked.\ connect(self.set_max_osc_total_range_clicked) self._data_path_widget.pathTemplateChangedSignal.\ connect(self.path_template_changed) self._processing_widget.enableProcessingSignal.connect(\ self._run_processing_toggled) # Other --------------------------------------------------------------- for col in range(self._lines_widget.lines_treewidget.columnCount()): self._lines_widget.lines_treewidget.resizeColumnToContents(col) #self._processing_widget.processing_widget.\ # run_processing_parallel_cbox.setChecked(False) self.enable_widgets(False)
def __init__(self,parent = None,name = None, fl = 0): """ Descript. : """ CreateTaskBase.__init__(self, parent, name, fl, 'Characterisation') if not name: self.setName("create_char_widget") # Hardware objects ---------------------------------------------------- # Internal variables -------------------------------------------------- self._current_selected_item = None self.init_models() self._char_params_mib = DataModelInputBinder(self._char_params) # Graphic elements ---------------------------------------------------- self._acq_widget = \ AcquisitionWidgetSimple(self, acq_params = self._acquisition_parameters, path_template = self._path_template) self._data_path_gbox = QtGui.QGroupBox('Data location', self) self._data_path_widget = DataPathWidget( self._data_path_gbox, data_model = self._path_template, layout = 'vertical') self._vertical_dimension_widget = uic.loadUi(os.path.join(os.path.dirname(__file__), 'ui_files/Qt4_vertical_crystal_dimension_widget_layout.ui')) self._char_widget = uic.loadUi(os.path.join(os.path.dirname(__file__), 'ui_files/Qt4_characterise_simple_widget_vertical_layout.ui')) gbox = self._char_widget.findChild(QtGui.QGroupBox, "characterisation_gbox") p = gbox.palette(); p.setColor(QtGui.QPalette.Window, QtCore.Qt.red); p.setColor(QtGui.QPalette.Highlight, QtCore.Qt.red); gbox.setPalette(p); # Layout -------------------------------------------------------------- _data_path_gbox_layout = QtGui.QVBoxLayout(self) _data_path_gbox_layout.addWidget(self._data_path_widget) _data_path_gbox_layout.setSpacing(0) _data_path_gbox_layout.setContentsMargins(0,0,0,0) self._data_path_gbox.setLayout(_data_path_gbox_layout) _main_vlayout = QtGui.QVBoxLayout(self) _main_vlayout.addWidget(self._acq_widget) _main_vlayout.addWidget(self._data_path_gbox) _main_vlayout.addWidget(self._char_widget) _main_vlayout.addWidget(self._vertical_dimension_widget) _main_vlayout.setSpacing(0) _main_vlayout.setContentsMargins(0,0,0,0) self.setLayout(_main_vlayout) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ # Other --------------------------------------------------------------- self._char_params_mib.bind_value_update( 'opt_sad', self._char_widget.optimised_sad_cbx, bool, None) self._char_params_mib.bind_value_update( 'account_rad_damage', self._char_widget.account_rad_dmg_cbx, bool, None) #self._char_params_mib.bind_value_update('determine_rad_params', # induced_burn_cbx, # bool, None) self._char_params_mib.bind_value_update( 'strategy_complexity', self._char_widget.start_comp_cbox, int, None) self._char_params_mib.\ bind_value_update('max_crystal_vdim', self._vertical_dimension_widget.max_vdim_ledit, float, QtGui.QDoubleValidator(0.0, 1000, 2, self)) self._char_params_mib.\ bind_value_update('min_crystal_vdim', self._vertical_dimension_widget.min_vdim_ledit, float, QtGui.QDoubleValidator(0.0, 1000, 2, self)) self._char_params_mib.\ bind_value_update('min_crystal_vphi', self._vertical_dimension_widget.min_vphi_ledit, float, QtGui.QDoubleValidator(0.0, 1000, 2, self)) self._char_params_mib.\ bind_value_update('max_crystal_vphi', self._vertical_dimension_widget.max_vphi_ledit, float, QtGui.QDoubleValidator(0.0, 1000, 2, self)) self._vertical_dimension_widget.space_group_ledit.addItems(XTAL_SPACEGROUPS) self._data_path_widget.data_path_layout.prefix_ledit.textChanged.\ connect(self._prefix_ledit_change) self._data_path_widget.data_path_layout.run_number_ledit.textChanged.\ connect(self._run_number_ledit_change) self._vertical_dimension_widget.space_group_ledit.activated.\ connect(self._space_group_change) self.connect(self._data_path_widget, QtCore.SIGNAL("pathTemplateChanged"), self.handle_path_conflict)
def __init__(self, parent = None,name = None, fl = 0): CreateTaskBase.__init__(self, parent, name, QtCore.Qt.WindowFlags(fl), 'Advanced') if not name: self.setObjectName("create_advanced_Scan_widget") # Hardware objects ---------------------------------------------------- self.__mini_diff_hwobj = None # Internal variables -------------------------------------------------- self.init_models() self._prev_pos = None self._current_pos = None self._list_item_map = {} self.init_models() self.__current_motor_positions = {} self.__cell_width = 0 self.__cell_height = 0 self.__list_items = {} self.__item_counter = 0 self.__grid_list = [] self.__canvas = None self.__matrix = None self.__event_mgr = None self.__drawing_object_layer = None self.__drawing_mgr = None self.__x_pixel_size = 1 self.__y_pixel_size = 1 self.__beam_size_x = 0 self.__beam_size_y = 0 self.__angle_active = 0 # Graphic elements ---------------------------------------------------- self.mesh_widget = uic.loadUi(os.path.join(os.path.dirname(__file__), 'ui_files/Qt4_mesh_widget_layout.ui')) self._acq_gbox = QtGui.QGroupBox('Acquisition', self) self._acq_gbox.setObjectName('acq_gbox') self._acq_widget = AcquisitionWidget(self._acq_gbox, "acquisition_widget", layout='vertical', acq_params=self._acquisition_parameters, path_template=self._path_template) self._data_path_gbox = QtGui.QGroupBox('Data location', self) self._data_path_gbox.setObjectName('data_path_gbox') self._data_path_widget = DataPathWidget(self._data_path_gbox, 'create_dc_path_widget', data_model = self._path_template, layout = 'vertical') # Layout -------------------------------------------------------------- self._acq_gbox_layout = QtGui.QVBoxLayout(self) self._acq_gbox_layout.addWidget(self._acq_widget) self._acq_gbox_layout.setSpacing(0) self._acq_gbox_layout.setContentsMargins(0,0,0,0) self._acq_gbox.setLayout(self._acq_gbox_layout) self._data_path_gbox_layout = QtGui.QVBoxLayout(self) self._data_path_gbox_layout.addWidget(self._data_path_widget) self._data_path_gbox_layout.setSpacing(0) self._data_path_gbox_layout.setContentsMargins(0,0,0,0) self._data_path_gbox.setLayout(self._data_path_gbox_layout) _main_vlayout = QtGui.QVBoxLayout(self) _main_vlayout.addWidget(self.mesh_widget) _main_vlayout.addWidget(self._acq_gbox) _main_vlayout.addWidget(self._data_path_gbox) _main_vlayout.addStretch(0) _main_vlayout.setSpacing(2) _main_vlayout.setContentsMargins(2, 2, 2, 2) self.setLayout(_main_vlayout) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ self._data_path_widget.data_path_layout.prefix_ledit.textChanged.\ connect(self._prefix_ledit_change) self._data_path_widget.data_path_layout.run_number_ledit.textChanged.\ connect(self._run_number_ledit_change) self.connect(self._data_path_widget, QtCore.SIGNAL("pathTemplateChanged"), self.handle_path_conflict) self.mesh_widget.draw_button.clicked.connect(self.draw_button_clicked) self.mesh_widget.add_button.clicked.connect(self.add_drawing_clicked) self.mesh_widget.remove_button.clicked.connect(self.delete_drawing_clicked) self.mesh_widget.hor_spacing_ledit.textChanged.\ connect(self.set_hspace) self.mesh_widget.ver_spacing_ledit.textChanged.\ connect(self.set_vspace) QtCore.QObject.connect(self.mesh_widget.mesh_treewidget, QtCore.SIGNAL("itemSelectionChanged()"), self.mesh_treewidget_selection_changed) self.mesh_widget.visibility_button.clicked.\ connect(self.toggle_visibility_grid) #TODO somehow make this better for child in self._acq_widget.children(): if child.children(): for child_child in child.children(): if hasattr(child_child, 'hide'): child_child.hide() self._acq_widget.findChild(QtGui.QLabel, "osc_range_label").show() self._acq_widget.findChild(QtGui.QLineEdit, "osc_range_ledit").show() #self._acq_widget.findChild(QtGui.QLabel, "detector_mode_label").show() #self._acq_widget.findChild(QtGui.QComboBox, "detector_mode_combo").show() self._acq_widget.findChild(QtGui.QLabel, "exp_time_label").show() self._acq_widget.findChild(QtGui.QLineEdit, "exp_time_ledit").show() self._acq_widget.findChild(QtGui.QLabel, "energy_label").show() self._acq_widget.findChild(QtGui.QLineEdit, "energy_ledit").show() self._acq_widget.findChild(QtGui.QLabel, "resolution_label").show() self._acq_widget.findChild(QtGui.QLineEdit,"resolution_ledit").show()
def __init__(self, parent=None, name=None, fl=0): CreateTaskBase.__init__(self, parent, name, QtCore.Qt.WindowFlags(fl), 'Advanced') if not name: self.setObjectName("create_advanced_widget") # Hardware objects ---------------------------------------------------- # Internal variables -------------------------------------------------- self.init_models() self._advanced_methods = None self._grid_map = {} # Graphic elements ---------------------------------------------------- self._advanced_methods_widget = uic.loadUi(os.path.join(\ os.path.dirname(__file__), "ui_files/Qt4_advanced_methods_layout.ui")) self._acq_widget = AcquisitionWidget( self, "acquisition_widget", layout='vertical', acq_params=self._acquisition_parameters, path_template=self._path_template) self._data_path_widget = DataPathWidget(self, 'create_dc_path_widget', data_model=self._path_template, layout='vertical') # Layout -------------------------------------------------------------- _main_vlayout = QtGui.QVBoxLayout(self) _main_vlayout.addWidget(self._advanced_methods_widget) _main_vlayout.addWidget(self._acq_widget) _main_vlayout.addWidget(self._data_path_widget) _main_vlayout.addStretch(0) _main_vlayout.setSpacing(2) _main_vlayout.setContentsMargins(2, 2, 2, 2) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ self._data_path_widget.data_path_layout.prefix_ledit.textChanged.\ connect(self._prefix_ledit_change) self._data_path_widget.data_path_layout.run_number_ledit.textChanged.\ connect(self._run_number_ledit_change) self._data_path_widget.pathTemplateChangedSignal.connect(\ self.handle_path_conflict) self._acq_widget.acqParametersChangedSignal.connect(\ self.handle_path_conflict) self._acq_widget.madEnergySelectedSignal.connect(\ self.mad_energy_selected) self._advanced_methods_widget.grid_treewidget.itemSelectionChanged.\ connect(self.grid_treewidget_item_selection_changed) self._advanced_methods_widget.draw_grid_button.clicked.\ connect(self.draw_grid_button_clicked) self._advanced_methods_widget.remove_grid_button.clicked.\ connect(self.remove_grid_button_clicked) self._advanced_methods_widget.hor_spacing_ledit.textChanged.\ connect(self.spacing_changed) self._advanced_methods_widget.ver_spacing_ledit.textChanged.\ connect(self.spacing_changed) self._advanced_methods_widget.move_right_button.clicked.\ connect(lambda : self.move_grid("right")) self._advanced_methods_widget.move_left_button.clicked.\ connect(lambda : self.move_grid("left")) self._advanced_methods_widget.move_up_button.clicked.\ connect(lambda : self.move_grid("up")) self._advanced_methods_widget.move_down_button.clicked.\ connect(lambda : self.move_grid("down")) self._advanced_methods_widget.overlay_cbox.toggled.\ connect(self.overlay_toggled) self._advanced_methods_widget.overlay_slider.valueChanged.\ connect(self.overlay_alpha_changed) self._advanced_methods_widget.move_to_grid_button.clicked.\ connect(self.move_to_grid) # Other --------------------------------------------------------------- self._acq_widget.use_osc_start(False) self._acq_widget.use_kappa(False) self._acq_widget.use_kappa_phi(False) self._acq_widget.acq_widget_layout.num_images_label.setEnabled(False) self._acq_widget.acq_widget_layout.num_images_ledit.setEnabled(False) for col in range(self._advanced_methods_widget.\ grid_treewidget.columnCount()): self._advanced_methods_widget.grid_treewidget.\ resizeColumnToContents(col)
def __init__(self, parent=None, name=None, fl=0): CreateTaskBase.__init__(self, parent, name, fl, 'Helical') if not name: self.setObjectName("create_helical_widget") self.init_models() # Hardware objects ---------------------------------------------------- # Internal variables -------------------------------------------------- self._lines_map = {} # Graphic elements ---------------------------------------------------- self._lines_widget = uic.loadUi(os.path.join(\ os.path.dirname(__file__), "ui_files/Qt4_helical_line_widget_layout.ui")) self._acq_widget = AcquisitionWidget( self, "acquisition_widget", layout='vertical', acq_params=self._acquisition_parameters, path_template=self._path_template) self._data_path_widget = DataPathWidget(self, 'create_dc_path_widget', data_model=self._path_template, layout='vertical') self._processing_widget = ProcessingWidget( self, data_model=self._processing_parameters) # Layout -------------------------------------------------------------- _main_vlayout = QtGui.QVBoxLayout(self) _main_vlayout.addWidget(self._lines_widget) _main_vlayout.addWidget(self._acq_widget) _main_vlayout.addWidget(self._data_path_widget) _main_vlayout.addWidget(self._processing_widget) _main_vlayout.addStretch(0) _main_vlayout.setSpacing(2) _main_vlayout.setContentsMargins(0, 0, 0, 0) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ #self._lines_widget.lines_treewidget.itemSelectionChanged.connect(\ # self.lines_treewidget_selection_changed) self._lines_widget.create_line_button.clicked.connect(\ self.create_line_button_clicked) self._lines_widget.remove_line_button.clicked.connect(\ self.remove_line_button_clicked) self._data_path_widget.data_path_layout.prefix_ledit.textChanged.\ connect(self._prefix_ledit_change) self._data_path_widget.data_path_layout.run_number_ledit.textChanged.\ connect(self._run_number_ledit_change) self._data_path_widget.pathTemplateChangedSignal.connect(\ self.handle_path_conflict) self._acq_widget.madEnergySelectedSignal.connect(\ self.mad_energy_selected) self._acq_widget.acqParametersChangedSignal.connect(\ self.handle_path_conflict) self._processing_widget.enableProcessingSignal.connect(\ self._enable_processing_toggled) # Other --------------------------------------------------------------- for col in range(self._lines_widget.lines_treewidget.columnCount()): self._lines_widget.lines_treewidget.resizeColumnToContents(col)
def __init__(self, parent=None, name=None, fl=0): """ Descript. : """ CreateTaskBase.__init__(self, parent, name, QtCore.Qt.WindowFlags(fl), "Standart") if not name: self.setObjectName("Qt4_create_discrete_widget") # Hardware objects ---------------------------------------------------- # Internal variables -------------------------------------------------- self.previous_energy = None self.init_models() # Graphic elements ---------------------------------------------------- self._acq_widget = AcquisitionWidget(self, "acquisition_widget", layout='vertical', acq_params=self._acquisition_parameters, path_template=self._path_template) self._data_path_gbox = QtGui.QGroupBox('Data location', self) self._data_path_gbox.setObjectName('data_path_gbox') self._data_path_widget = \ DataPathWidget(self._data_path_gbox, 'create_dc_path_widget', data_model=self._path_template, layout='vertical') self._processing_gbox = QtGui.QGroupBox('Processing', self) self._processing_gbox.setObjectName('processing_gbox') self._processing_widget = \ ProcessingWidget(self._processing_gbox, data_model=self._processing_parameters) # Layout -------------------------------------------------------------- self._data_path_gbox_layout = QtGui.QVBoxLayout(self) self._data_path_gbox_layout.addWidget(self._data_path_widget) self._data_path_gbox_layout.setSpacing(0) self._data_path_gbox_layout.setContentsMargins(0, 0, 0, 0) self._data_path_gbox.setLayout(self._data_path_gbox_layout) self._processing_gbox_layout = QtGui.QVBoxLayout(self) self._processing_gbox_layout.addWidget(self._processing_widget) self._processing_gbox_layout.setSpacing(0) self._processing_gbox_layout.setContentsMargins(0, 0, 0, 0) self._processing_gbox.setLayout(self._processing_gbox_layout) self.main_layout = QtGui.QVBoxLayout(self) self.main_layout.addWidget(self._acq_widget) self.main_layout.addWidget(self._data_path_gbox) self.main_layout.addWidget(self._processing_gbox) self.main_layout.addSpacing(10) self.main_layout.setSpacing(0) self.main_layout.setContentsMargins(0, 0, 0, 0) self.setLayout(self.main_layout) # SizePolicies -------------------------------------------------------- """self._acq_widget.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Fixed) self._data_path_gbox.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding) self._processing_gbox.setSizePolicy(QtGui.QSizePolicy.Expanding, QtGui.QSizePolicy.Expanding)""" # Qt signal/slot connections ------------------------------------------ self._processing_gbox.toggled.connect(self._use_processing_toggled) self._data_path_widget.data_path_layout.prefix_ledit.textChanged.\ connect(self._prefix_ledit_change) self._data_path_widget.data_path_layout.run_number_ledit.textChanged.\ connect(self._run_number_ledit_change) self.connect(self._acq_widget, QtCore.SIGNAL('mad_energy_selected'), self.mad_energy_selected) self.connect(self._acq_widget, QtCore.SIGNAL("pathTemplateChanged"), self.handle_path_conflict) self.connect(self._data_path_widget, QtCore.SIGNAL("pathTemplateChanged"), self.handle_path_conflict)
def __init__(self, parent=None,name=None, fl=0): CreateTaskBase.__init__(self, parent, name, Qt.WindowFlags(fl), 'Advanced') if not name: self.setObjectName("create_advanced_widget") # Hardware objects ---------------------------------------------------- # Internal variables -------------------------------------------------- self.init_models() self._advanced_methods = None self._grid_map = {} self.spacing = [0, 0] self.dc_selected = False # Graphic elements ---------------------------------------------------- self._advanced_methods_widget = loadUi(os.path.join(\ os.path.dirname(__file__), "ui_files/Qt4_advanced_methods_layout.ui")) self._acq_widget = AcquisitionWidget(self, "acquisition_widget", layout='vertical', acq_params=self._acquisition_parameters, path_template=self._path_template) self._acq_widget.grid_mode = True self._data_path_widget = DataPathWidget(self, 'create_dc_path_widget', data_model = self._path_template, layout = 'vertical') # Layout -------------------------------------------------------------- _main_vlayout = QVBoxLayout(self) _main_vlayout.addWidget(self._advanced_methods_widget) _main_vlayout.addWidget(self._acq_widget) _main_vlayout.addWidget(self._data_path_widget) _main_vlayout.addStretch(0) _main_vlayout.setSpacing(6) _main_vlayout.setContentsMargins(2, 2, 2, 2) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ self._acq_widget.acqParametersChangedSignal.\ connect(self.acq_parameters_changed) self._acq_widget.madEnergySelectedSignal.\ connect(self.mad_energy_selected) self._acq_widget.acq_widget_layout.osc_range_ledit.textEdited.connect(\ self.grid_osc_range_ledit_changed) self._acq_widget.acq_widget_layout.osc_total_range_ledit.textEdited.connect(\ self.grid_osc_total_range_ledit_changed) self._data_path_widget.pathTemplateChangedSignal.\ connect(self.path_template_changed) self._advanced_methods_widget.grid_treewidget.itemSelectionChanged.\ connect(self.grid_treewidget_item_selection_changed) self._advanced_methods_widget.draw_grid_button.clicked.\ connect(self.draw_grid_button_clicked) self._advanced_methods_widget.remove_grid_button.clicked.\ connect(self.remove_grid_button_clicked) self._advanced_methods_widget.hor_spacing_ledit.textEdited.\ connect(self.hor_spacing_changed) self._advanced_methods_widget.ver_spacing_ledit.textEdited.\ connect(self.ver_spacing_changed) self._advanced_methods_widget.move_right_button.clicked.\ connect(lambda : self.move_grid("right")) self._advanced_methods_widget.move_left_button.clicked.\ connect(lambda : self.move_grid("left")) self._advanced_methods_widget.move_up_button.clicked.\ connect(lambda : self.move_grid("up")) self._advanced_methods_widget.move_down_button.clicked.\ connect(lambda : self.move_grid("down")) self._advanced_methods_widget.overlay_cbox.toggled.\ connect(self.overlay_toggled) self._advanced_methods_widget.overlay_slider.valueChanged.\ connect(self.overlay_alpha_changed) self._advanced_methods_widget.overlay_color_button.clicked.\ connect(self.overlay_change_color) self._advanced_methods_widget.move_to_grid_button.clicked.\ connect(self.move_to_grid) # Other --------------------------------------------------------------- self._acq_widget.use_osc_start(False) self._acq_widget.use_kappa(False) self._acq_widget.acq_widget_layout.num_images_label.setEnabled(False) self._acq_widget.acq_widget_layout.num_images_ledit.setEnabled(False) for col in range(self._advanced_methods_widget.\ grid_treewidget.columnCount()): self._advanced_methods_widget.grid_treewidget.\ resizeColumnToContents(col) self._acq_widget.acq_widget_layout.osc_total_range_label.setText(\ "Total osc. range per line")
def __init__(self, parent=None, name=None, fl=0): """ Descript. : """ CreateTaskBase.__init__(self, parent, name, fl, "Characterisation") self.setObjectName("create_char_widget") # Hardware objects ---------------------------------------------------- # Internal variables -------------------------------------------------- self._vertical_dimension_widget = None self._current_selected_item = None self.init_models() self._char_params_mib = DataModelInputBinder(self._char_params) # Graphic elements ---------------------------------------------------- self._acq_widget = AcquisitionWidgetSimple( self, acq_params=self._acquisition_parameters, path_template=self._path_template ) self._data_path_widget = DataPathWidget(self, data_model=self._path_template, layout="vertical") self._vertical_dimension_widget = uic.loadUi( os.path.join(os.path.dirname(__file__), "ui_files/Qt4_vertical_crystal_dimension_widget_layout.ui") ) self._char_widget = uic.loadUi( os.path.join(os.path.dirname(__file__), "ui_files/Qt4_characterise_simple_widget_vertical_layout.ui") ) # Layout -------------------------------------------------------------- _main_vlayout = QtGui.QVBoxLayout(self) _main_vlayout.addWidget(self._acq_widget) _main_vlayout.addWidget(self._data_path_widget) _main_vlayout.addWidget(self._char_widget) _main_vlayout.addWidget(self._vertical_dimension_widget) _main_vlayout.setContentsMargins(0, 0, 0, 0) _main_vlayout.setSpacing(2) _main_vlayout.addStretch(10) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ self._data_path_widget.pathTemplateChangedSignal.connect(self.acq_parameters_changed) self._acq_widget.acqParametersChangedSignal.connect(self.acq_parameters_changed) self._vertical_dimension_widget.space_group_ledit.activated.connect(self._space_group_change) # self.connect(induced_burn_cbx, QtCore.SIGNAL("toggled(bool)"), # self.use_induced_burn) self._char_widget.characterisation_gbox.toggled.connect(self.characterisation_gbox_toggled) # Other --------------------------------------------------------------- self._char_params_mib.bind_value_update("opt_sad", self._char_widget.optimised_sad_cbx, bool, None) self._char_params_mib.bind_value_update("account_rad_damage", self._char_widget.account_rad_dmg_cbx, bool, None) # self._char_params_mib.bind_value_update('determine_rad_params', # induced_burn_cbx, # bool, None) self._char_params_mib.bind_value_update("strategy_complexity", self._char_widget.start_comp_cbox, int, None) self._char_params_mib.bind_value_update( "max_crystal_vdim", self._vertical_dimension_widget.max_vdim_ledit, float, QtGui.QDoubleValidator(0.0, 1000, 2, self), ) self._char_params_mib.bind_value_update( "min_crystal_vdim", self._vertical_dimension_widget.min_vdim_ledit, float, QtGui.QDoubleValidator(0.0, 1000, 2, self), ) self._char_params_mib.bind_value_update( "min_crystal_vphi", self._vertical_dimension_widget.min_vphi_ledit, float, QtGui.QDoubleValidator(0.0, 1000, 2, self), ) self._char_params_mib.bind_value_update( "max_crystal_vphi", self._vertical_dimension_widget.max_vphi_ledit, float, QtGui.QDoubleValidator(0.0, 1000, 2, self), ) self._vertical_dimension_widget.space_group_ledit.addItems(XTAL_SPACEGROUPS)
def __init__(self, parent=None, name=None, fl=0): CreateTaskBase.__init__(self, parent, name, QtCore.Qt.WindowFlags(fl), 'GphlWorkflow') if not name: self.setObjectName("Qt4_create_gphl_workflow_widget") # Hardware objects ---------------------------------------------------- self._workflow_hwobj = None # Internal variables -------------------------------------------------- self.current_prefix = None self.init_models() # Graphic elements ---------------------------------------------------- self._workflow_type_widget = QtGui.QGroupBox('Workflow type', self) self._workflow_cbox = QtGui.QComboBox(self._workflow_type_widget) self._gphl_acq_widget = QtGui.QGroupBox('Acquisition', self) self._gphl_acq_param_widget = GphlAcquisitionWidget( self._gphl_acq_widget, "gphl_acquisition_parameter_widget" ) self._gphl_diffractcal_widget = GphlDiffractcalWidget( self._gphl_acq_widget, "gphl_diffractcal_widget" ) self._data_path_widget = DataPathWidget(self, 'create_dc_path_widget', layout='vertical') data_path_layout = self._data_path_widget.data_path_layout data_path_layout.file_name_label.hide() data_path_layout.file_name_value_label.hide() data_path_layout.run_number_label.hide() data_path_layout.run_number_ledit.hide() # Layout -------------------------------------------------------------- _workflow_type_vlayout = QtGui.QVBoxLayout(self._workflow_type_widget) _workflow_type_vlayout.addWidget(self._workflow_cbox) _gphl_acq_vlayout = QtGui.QVBoxLayout(self._gphl_acq_widget) _gphl_acq_vlayout.addWidget(self._gphl_acq_param_widget) _gphl_acq_vlayout.addWidget(self._gphl_diffractcal_widget) _main_vlayout = QtGui.QVBoxLayout(self) _main_vlayout.addWidget(self._workflow_type_widget) _main_vlayout.addWidget(self._data_path_widget) _main_vlayout.addWidget(self._gphl_acq_widget) _main_vlayout.addStretch(0) _main_vlayout.setSpacing(2) _main_vlayout.setContentsMargins(0,0,0,0) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ self._workflow_cbox.currentIndexChanged[str].connect( self.workflow_selected ) # set up popup data dialog self.gphl_data_dialog = GphlDataDialog(self, 'GPhL Workflow Data') self.gphl_data_dialog.setModal(True) self.gphl_data_dialog.continueClickedSignal.connect(self.data_acquired)
def __init__(self, parent = None,name = None, fl = 0): CreateTaskBase.__init__(self, parent, name, QtCore.Qt.WindowFlags(fl), 'Advanced') if not name: self.setObjectName("create_advanced_Scan_widget") # Hardware objects ---------------------------------------------------- self.__mini_diff_hwobj = None # Internal variables -------------------------------------------------- self.init_models() self._prev_pos = None self._current_pos = None self._list_item_map = {} self.init_models() self.__current_motor_positions = {} self.__list_items = {} self.__grid_list = [] self.__beam_info = {} self.__spacing = [0, 0] # Graphic elements ---------------------------------------------------- self.mesh_widget = uic.loadUi(os.path.join(os.path.dirname(__file__), 'ui_files/Qt4_mesh_widget_layout.ui')) self._acq_widget = AcquisitionWidget(self, "acquisition_widget", layout='vertical', acq_params=self._acquisition_parameters, path_template=self._path_template) self._data_path_gbox = QtGui.QGroupBox('Data location', self) self._data_path_gbox.setObjectName('data_path_gbox') self._data_path_widget = DataPathWidget(self._data_path_gbox, 'create_dc_path_widget', data_model = self._path_template, layout = 'vertical') # Layout -------------------------------------------------------------- self._data_path_gbox_layout = QtGui.QVBoxLayout(self) self._data_path_gbox_layout.addWidget(self._data_path_widget) self._data_path_gbox_layout.setSpacing(0) self._data_path_gbox_layout.setContentsMargins(0,0,0,0) self._data_path_gbox.setLayout(self._data_path_gbox_layout) _main_vlayout = QtGui.QVBoxLayout(self) _main_vlayout.addWidget(self.mesh_widget) _main_vlayout.addWidget(self._acq_widget) _main_vlayout.addWidget(self._data_path_gbox) _main_vlayout.addStretch(0) _main_vlayout.setSpacing(2) _main_vlayout.setContentsMargins(2, 2, 2, 2) self.setLayout(_main_vlayout) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ self._data_path_widget.data_path_layout.prefix_ledit.textChanged.\ connect(self._prefix_ledit_change) self._data_path_widget.data_path_layout.run_number_ledit.textChanged.\ connect(self._run_number_ledit_change) self.connect(self._data_path_widget, QtCore.SIGNAL("pathTemplateChanged"), self.handle_path_conflict) self.mesh_widget.draw_button.clicked.connect(self.draw_button_clicked) self.mesh_widget.remove_button.clicked.connect(self.delete_drawing_clicked) self.mesh_widget.hor_spacing_ledit.textChanged.connect(self.set_hspace) self.mesh_widget.ver_spacing_ledit.textChanged.connect(self.set_vspace) self.mesh_widget.mesh_treewidget.currentItemChanged.connect(\ self.mesh_treewidget_current_item_changed) self.mesh_widget.visibility_button.clicked.\ connect(self.toggle_visibility_grid)
def __init__(self,parent = None,name = None, fl = 0): """ Descript. : """ CreateTaskBase.__init__(self, parent, name, fl, 'Characterisation') self.setObjectName("create_char_widget") # Hardware objects ---------------------------------------------------- # Internal variables -------------------------------------------------- self._vertical_dimension_widget = None self._current_selected_item = None self.init_models() self._char_params_mib = DataModelInputBinder(self._char_params) # Graphic elements ---------------------------------------------------- self._acq_widget = \ AcquisitionWidgetSimple(self, acq_params = self._acquisition_parameters, path_template = self._path_template) self._data_path_widget = DataPathWidget(self, data_model = self._path_template, layout = 'vertical') self._vertical_dimension_widget = loadUi(os.path.join(os.path.dirname(__file__), 'ui_files/Qt4_vertical_crystal_dimension_widget_layout.ui')) self._char_widget = loadUi(os.path.join(os.path.dirname(__file__), 'ui_files/Qt4_characterise_simple_widget_vertical_layout.ui')) # Layout -------------------------------------------------------------- _main_vlayout = QVBoxLayout(self) _main_vlayout.addWidget(self._acq_widget) _main_vlayout.addWidget(self._data_path_widget) _main_vlayout.addWidget(self._char_widget) _main_vlayout.addWidget(self._vertical_dimension_widget) _main_vlayout.setContentsMargins(2, 2, 2, 2) _main_vlayout.setSpacing(6) _main_vlayout.addStretch(0) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ self._data_path_widget.pathTemplateChangedSignal.\ connect(self.path_template_changed) self._acq_widget.acqParametersChangedSignal.\ connect(self.acq_parameters_changed) self._vertical_dimension_widget.space_group_ledit.activated.\ connect(self._space_group_change) #self.connect(induced_burn_cbx, QtCore.SIGNAL("toggled(bool)"), # self.use_induced_burn) self._char_widget.characterisation_gbox.toggled.connect(\ self.characterisation_gbox_toggled) self._char_widget.wait_result_cbx.toggled.connect(\ self.wait_results_cbx_toggled) self._char_widget.execute_plan_cbx.toggled.connect(\ self.run_diffraction_plan_cbx_toggled) # Other --------------------------------------------------------------- self._char_params_mib.bind_value_update( 'opt_sad', self._char_widget.optimised_sad_cbx, bool, None) self._char_params_mib.bind_value_update( 'account_rad_damage', self._char_widget.account_rad_dmg_cbx, bool, None) #self._char_params_mib.bind_value_update('determine_rad_params', # induced_burn_cbx, # bool, None) self._char_params_mib.bind_value_update( 'strategy_complexity', self._char_widget.start_comp_cbox, int, None) self._char_params_mib.\ bind_value_update('max_crystal_vdim', self._vertical_dimension_widget.max_vdim_ledit, float, QDoubleValidator(0.0, 1000, 2, self)) self._char_params_mib.\ bind_value_update('min_crystal_vdim', self._vertical_dimension_widget.min_vdim_ledit, float, QDoubleValidator(0.0, 1000, 2, self)) self._char_params_mib.\ bind_value_update('min_crystal_vphi', self._vertical_dimension_widget.min_vphi_ledit, float, QDoubleValidator(0.0, 1000, 2, self)) self._char_params_mib.\ bind_value_update('max_crystal_vphi', self._vertical_dimension_widget.max_vphi_ledit, float, QDoubleValidator(0.0, 1000, 2, self)) self._vertical_dimension_widget.space_group_ledit.addItems( queue_model_enumerables.XTAL_SPACEGROUPS ) self._data_path_widget.data_path_layout.compression_cbox.setVisible(False)
def __init__(self, parent=None, name=None, fl=0): CreateTaskBase.__init__(self, parent, name, QtCore.Qt.WindowFlags(fl), 'Advanced') if not name: self.setObjectName("create_advanced_Scan_widget") # Hardware objects ---------------------------------------------------- self.__mini_diff_hwobj = None # Internal variables -------------------------------------------------- self.init_models() self._prev_pos = None self._current_pos = None self._list_item_map = {} self.init_models() self.__current_motor_positions = {} self.__list_items = {} self.__grid_list = [] self.__beam_info = {} self.__spacing = [0, 0] # Graphic elements ---------------------------------------------------- self.mesh_widget = uic.loadUi( os.path.join(os.path.dirname(__file__), 'ui_files/Qt4_mesh_widget_layout.ui')) self._acq_widget = AcquisitionWidget( self, "acquisition_widget", layout='vertical', acq_params=self._acquisition_parameters, path_template=self._path_template) self._data_path_gbox = QtGui.QGroupBox('Data location', self) self._data_path_gbox.setObjectName('data_path_gbox') self._data_path_widget = DataPathWidget(self._data_path_gbox, 'create_dc_path_widget', data_model=self._path_template, layout='vertical') # Layout -------------------------------------------------------------- self._data_path_gbox_layout = QtGui.QVBoxLayout(self) self._data_path_gbox_layout.addWidget(self._data_path_widget) self._data_path_gbox_layout.setSpacing(0) self._data_path_gbox_layout.setContentsMargins(0, 0, 0, 0) self._data_path_gbox.setLayout(self._data_path_gbox_layout) _main_vlayout = QtGui.QVBoxLayout(self) _main_vlayout.addWidget(self.mesh_widget) _main_vlayout.addWidget(self._acq_widget) _main_vlayout.addWidget(self._data_path_gbox) _main_vlayout.addStretch(0) _main_vlayout.setSpacing(2) _main_vlayout.setContentsMargins(2, 2, 2, 2) self.setLayout(_main_vlayout) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ self._data_path_widget.data_path_layout.prefix_ledit.textChanged.\ connect(self._prefix_ledit_change) self._data_path_widget.data_path_layout.run_number_ledit.textChanged.\ connect(self._run_number_ledit_change) self.connect(self._data_path_widget, QtCore.SIGNAL("pathTemplateChanged"), self.handle_path_conflict) self.mesh_widget.draw_button.clicked.connect(self.draw_button_clicked) self.mesh_widget.remove_button.clicked.connect( self.delete_drawing_clicked) self.mesh_widget.hor_spacing_ledit.textChanged.connect(self.set_hspace) self.mesh_widget.ver_spacing_ledit.textChanged.connect(self.set_vspace) self.mesh_widget.mesh_treewidget.currentItemChanged.connect(\ self.mesh_treewidget_current_item_changed) self.mesh_widget.visibility_button.clicked.\ connect(self.toggle_visibility_grid)