当前位置: 首页>>代码示例>>Python>>正文


Python DataModelInputBinder.set_model方法代码示例

本文整理汇总了Python中widgets.Qt4_widget_utils.DataModelInputBinder.set_model方法的典型用法代码示例。如果您正苦于以下问题:Python DataModelInputBinder.set_model方法的具体用法?Python DataModelInputBinder.set_model怎么用?Python DataModelInputBinder.set_model使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在widgets.Qt4_widget_utils.DataModelInputBinder的用法示例。


在下文中一共展示了DataModelInputBinder.set_model方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: CreateCharWidget

# 需要导入模块: from widgets.Qt4_widget_utils import DataModelInputBinder [as 别名]
# 或者: from widgets.Qt4_widget_utils.DataModelInputBinder import set_model [as 别名]

#.........这里部分代码省略.........

    def single_item_selection(self, tree_item):
        """
        Descript. :
        """
        CreateTaskBase.single_item_selection(self, tree_item)
        
        if isinstance(tree_item, Qt4_queue_item.SampleQueueItem):
            #self._init_models() 
            if self._char_params.space_group == "":
                sample_model = tree_item.get_model()
                self._set_space_group(sample_model.processing_parameters.space_group)
            #self._acq_widget.update_data_model(self._acquisition_parameters,
            #                                   self._path_template)
            #self._char_params_mib.set_model(self._char_params)
        elif isinstance(tree_item, Qt4_queue_item.BasketQueueItem):
            self.setDisabled(False)
        elif isinstance(tree_item, Qt4_queue_item.CharacterisationQueueItem):
            if tree_item.get_model().is_executed():
                self.setDisabled(True)
            else:
                self.setDisabled(False)

            self._char = tree_item.get_model()

            if self._char.get_path_template():
                self._path_template = self._char.get_path_template()

            self._data_path_widget.update_data_model(self._path_template)
            
            data_collection = self._char.reference_image_collection

            self._char_params = self._char.characterisation_parameters
            self._char_params_mib.set_model(self._char_params)

            self._acquisition_parameters = data_collection.acquisitions[0].\
                                           acquisition_parameters

            self._acq_widget.update_data_model(self._acquisition_parameters,
                                               self._path_template)
            #self.get_acquisition_widget().use_osc_start(True)

            if len(data_collection.acquisitions) == 1:
                self.select_shape_with_cpos(self._acquisition_parameters.\
                                            centred_position)

            self._processing_parameters = data_collection.processing_parameters
        else:
            self.setDisabled(True)

    def update_processing_parameters(self, crystal):
        """
        Descript. :
        """
        self._processing_parameters.space_group = crystal.space_group
        self._char_params.space_group = crystal.space_group
        self._processing_parameters.cell_a = crystal.cell_a
        self._processing_parameters.cell_alpha = crystal.cell_alpha
        self._processing_parameters.cell_b = crystal.cell_b
        self._processing_parameters.cell_beta = crystal.cell_beta
        self._processing_parameters.cell_c = crystal.cell_c
        self._processing_parameters.cell_gamma = crystal.cell_gamma

    def approve_creation(self):
        """
        Descript. :
开发者ID:vrey01,项目名称:mxcube,代码行数:70,代码来源:Qt4_create_char_widget.py

示例2: Qt4_SampleDetailsBrick

# 需要导入模块: from widgets.Qt4_widget_utils import DataModelInputBinder [as 别名]
# 或者: from widgets.Qt4_widget_utils.DataModelInputBinder import set_model [as 别名]

#.........这里部分代码省略.........
        self.sample_info_widget = uic.loadUi(
                                os.path.join(os.path.dirname(__file__),
                                "widgets/ui_files/Qt4_sample_info_widget_layout.ui"))

        # Layout --------------------------------------------------------------
        _info_widget_hlayout = QtGui.QHBoxLayout(_info_widget)
        _info_widget_hlayout.addWidget(self.sample_info_widget)
        _info_widget_hlayout.addWidget(self.crystal_widget)
        _info_widget_hlayout.addStretch(0)

        _main_hlayout = QtGui.QVBoxLayout(self)
        _main_hlayout.addWidget(_info_widget)
        _main_hlayout.addStretch(0)
        _main_hlayout.setSpacing(0)
        _main_hlayout.setContentsMargins(2, 2, 2, 2)

        # SizePolicies --------------------------------------------------------

        # Qt signal/slot connections ------------------------------------------

        # Other ---------------------------------------------------------------
        self.crystal_mib.bind_value_update('space_group',  
                                           self.crystal_widget.space_group_value_label,
                                           str, 
                                           None)

        self.crystal_mib.bind_value_update('protein_acronym',
                                           self.crystal_widget.protein_acronym_value_label,
                                           str,
                                           None)

        self.crystal_mib.bind_value_update('cell_a',
                                           self.crystal_widget.a_value_label,
                                           str,
                                           None)

        self.crystal_mib.bind_value_update('cell_alpha',
                                           self.crystal_widget.alpha_value_label,
                                           str,
                                           None)

        self.crystal_mib.bind_value_update('cell_b',
                                           self.crystal_widget.b_value_label,
                                           str,
                                           None)

        self.crystal_mib.bind_value_update('cell_beta',
                                           self.crystal_widget.beta_value_label,
                                           str,
                                           None)

        self.crystal_mib.bind_value_update('cell_c',
                                           self.crystal_widget.c_value_label,
                                           str,
                                           None)

        self.crystal_mib.bind_value_update('cell_gamma',
                                           self.crystal_widget.gamma_value_label,
                                           str,
                                           None)

        self.sample_mib.bind_value_update('name',
                                          self.sample_info_widget.name_value_label,
                                          str,
                                          None)
        

        self.sample_mib.bind_value_update('code',
                                          self.sample_info_widget.data_matrix_value_label,
                                          str,
                                          None)


        self.sample_mib.bind_value_update('holder_length',
                                          self.sample_info_widget.holder_length_value_label,
                                          str,
                                          None)


        self.sample_mib.bind_value_update('lims_sample_location',
                                          self.sample_info_widget.sample_location_value_label,
                                          str,
                                          None)


        self.sample_mib.bind_value_update('lims_container_location',
                                          self.sample_info_widget.basket_location_value_label,
                                          str,
                                          None)



    def populate_sample_details(self, sample):
        """
        Descript. :
        """
        self.sample = sample
        self.crystal = sample.crystals[0]
        self.crystal_mib.set_model(self.crystal)
        self.sample_mib.set_model(sample)
开发者ID:hzb-mx,项目名称:mxcube,代码行数:104,代码来源:Qt4_SampleDetailsBrick.py

示例3: CharParametersWidget

# 需要导入模块: from widgets.Qt4_widget_utils import DataModelInputBinder [as 别名]
# 或者: from widgets.Qt4_widget_utils.DataModelInputBinder import set_model [as 别名]

#.........这里部分代码省略.........
        """
        Descript. :
        """
        self.opt_parameters_widget.opt_param_widget.aimed_mult_ledit.setEnabled(state)

    def enable_maximum_res_ledit(self, state):
        """
        Descript. :
        """
        self.opt_parameters_widget.opt_param_widget.maximum_res_ledit.setEnabled(state)

    def update_char_type(self, index):
        """
        Descript. :
        """
        self._char_params.experiment_type = index
    
    def toggle_permitted_range(self, status):
        """
        Descript. :
        """
        self.opt_parameters_widget.opt_param_widget.phi_start_ledit.setEnabled(status)
        self.opt_parameters_widget.opt_param_widget.phi_end_ledit.setEnabled(status)

    def enable_opt_parameters_widget(self, state):
        """
        Descript. :
        """
        if not self._char.is_executed():
            self.opt_parameters_widget.setEnabled(not state)
        else:
            self.opt_parameters_widget.setEnabled(False)

    def tab_changed(self):
        """
        Descript. :
        """
        if self._tree_view_item:
            self.populate_parameter_widget(self._tree_view_item)

    def set_enabled(self, state):
        """
        Descript. :
        """
        self.char_type_widget.setEnabled(state)
        self.routine_dc_widget.setEnabled(state)
        self.sad_widget.setEnabled(state)
        self.rad_dmg_char_widget.setEnabled(state)
        self.reference_img_widget.setEnabled(state)
        self.acq_widget.setEnabled(state)
        self.path_widget.setEnabled(state)
        self.opt_parameters_widget.setEnabled(state)
        self.rad_dmg_widget.setEnabled(state)
        self.vertical_dimension_widget.setEnabled(state)

    def populate_parameter_widget(self, tree_view_item):
        """
        Descript. :
        """
        self._tree_view_item = tree_view_item
        self._char = tree_view_item.get_model()
        self._data_collection = self._char.reference_image_collection
        self._char_params = self._char.characterisation_parameters
        self._char_params_mib.set_model(self._char.characterisation_parameters)
        self._set_space_group(self._char_params.space_group)
       
        self.acq_widget.update_data_model(self._char.reference_image_collection.\
                                          acquisitions[0].acquisition_parameters,
                                          self._char.reference_image_collection.\
                                          acquisitions[0].path_template)
        
        self.path_widget.update_data_model(self._char.reference_image_collection.\
                                           acquisitions[0].path_template)
        
        if self._data_collection.acquisitions[0].acquisition_parameters.\
                centred_position.snapshot_image:
            image = self._data_collection.acquisitions[0].\
                acquisition_parameters.centred_position.snapshot_image
            ration = image.height() / float(image.width())
            image = image.scaled(400, 400 * ration, QtCore.Qt.KeepAspectRatio)
            self.position_widget.svideo.setPixmap(QtGui.QPixmap(image))

        self.toggle_permitted_range(self._char_params.use_permitted_rotation)
        self.enable_opt_parameters_widget(self._char_params.determine_rad_params)
        self.enable_maximum_res_ledit(self._char_params.use_aimed_resolution)
        self.enable_aimed_mult_ledit(self._char_params.use_aimed_multiplicity)
       
        item = self.char_type_widget.charact_type_tbox.\
               widget(self._char_params.experiment_type)
       
        self.char_type_widget.charact_type_tbox.setCurrentWidget(item)
        self.char_type_widget.toggle_time_dose()
        crystal = self._char.reference_image_collection.crystal
        self.acq_widget.set_energies(crystal.energy_scan_result)

    def set_beamline_setup(self, bl_setup):
        """
        Descript. :
        """
        self.acq_widget.set_beamline_setup(bl_setup)
开发者ID:folf,项目名称:mxcube,代码行数:104,代码来源:Qt4_char_parameters_widget.py

示例4: AcquisitionWidgetSimple

# 需要导入模块: from widgets.Qt4_widget_utils import DataModelInputBinder [as 别名]
# 或者: from widgets.Qt4_widget_utils.DataModelInputBinder import set_model [as 别名]

#.........这里部分代码省略.........
        """
        if limits:
            self.energy_validator.setBottom(limits[0])
            self.energy_validator.setTop(limits[1])
            self.acq_widget_layout.energy_ledit.setToolTip(
               "Energy limits %0.3f : %0.3f" %(limits[0], limits[1]))
            self._acquisition_mib.validate_all()

    def update_transmission_limits(self, limits):
        """
        Descript. :
        """
        if limits:
            self.transmission_validator.setBottom(limits[0])
            self.transmission_validator.setTop(limits[1])
            self.acq_widget_layout.transmission_ledit.setToolTip(
               "Transmission limits %0.3f : %0.3f" %(limits[0], limits[1]))
            self._acquisition_mib.validate_all()

    def update_resolution_limits(self, limits):
        """
        Descript. :
        """
        if limits:
            self.resolution_validator.setBottom(limits[0])
            self.resolution_validator.setTop(limits[1])
            self.acq_widget_layout.resolution_ledit.setToolTip(
               "Resolution limits %0.3f : %0.3f" %(limits[0], limits[1]))
            self._acquisition_mib.validate_all()

    def update_detector_exp_time_limits(self, limits):
        """
        Descript. :
        """
        if limits:
            self.exp_time_validator.setBottom(limits[0])
            self.exp_time_validator.setTop(limits[1])
            self.acq_widget_layout.exp_time_ledit.setToolTip(
               "Exposure time limits %0.3f : %0.3f" %(limits[0], limits[1]))
            self._acquisition_mib.validate_all()

    def init_detector_roi_modes(self):
        """
        Descript. :
        """
        if self._beamline_setup_hwobj is not None:
            roi_modes = self._beamline_setup_hwobj._get_roi_modes()
            if (len(roi_modes) > 0 and
                self.acq_widget_layout.detector_roi_mode_combo.count() == 0):
                for roi_mode in roi_modes: 
                    self.acq_widget_layout.detector_roi_mode_combo.\
                         addItem(roi_mode)
                self.acq_widget_layout.detector_roi_mode_label.setEnabled(True)
                self.acq_widget_layout.detector_roi_mode_combo.setEnabled(True)
                #self._acquisition_mib.bind_value_update('detector_roi_mode',
                #               self.acq_widget_layout.detector_roi_mode_combo,
                #               str,
                #               None)

    def update_detector_roi_mode(self, roi_mode_index):
        """
        Descript. :
        """
        if self.acq_widget_layout.detector_roi_mode_combo.count() > 0:
            self.acq_widget_layout.detector_roi_mode_combo.\
                 setCurrentIndex(roi_mode_index)

    def detector_roi_mode_changed(self, roi_mode_index):
        """
        Descript. :
        """
        if self._beamline_setup_hwobj is not None:
            self._beamline_setup_hwobj.detector_hwobj.set_roi_mode(roi_mode_index)
 
    def update_data_model(self, acquisition_parameters, path_template):
        """
        Descript. :
        """
        self._acquisition_parameters = acquisition_parameters
        self._acquisition_mib.set_model(acquisition_parameters)
        self._path_template = path_template
        self.update_num_images(None, acquisition_parameters.num_images)

    def set_tunable_energy(self, state):
        """
        Descript. :
        """
        self.acq_widget_layout.energy_ledit.setEnabled(state)

    def use_osc_start(self, state):
        """
        Descript. :
        """
        self.acq_widget_layout.osc_start_ledit.setEnabled(state)

    def check_parameter_conflict(self):
        """
        Descript. :
        """
        return len(self._acquisition_mib.validate_all()) > 0
开发者ID:jordiandreu,项目名称:mxcube,代码行数:104,代码来源:Qt4_acquisition_widget_simple.py

示例5: AcquisitionWidget

# 需要导入模块: from widgets.Qt4_widget_utils import DataModelInputBinder [as 别名]
# 或者: from widgets.Qt4_widget_utils.DataModelInputBinder import set_model [as 别名]

#.........这里部分代码省略.........
               try:
                  osc_start = float(self.acq_widget_layout.osc_start_ledit.text())
                  osc_range = float(self.acq_widget_layout.osc_range_ledit.text())
               except ValueError:
                  return

               if osc_range == 0:
                   return

               num_images_limits = int((self.osc_start_validator.top() - \
                                        osc_start) / osc_range)

           self.num_img_validator.setTop(num_images_limits)
           self.acq_widget_layout.num_images_ledit.setToolTip(\
               "Number of images limits : %d" % num_images_limits)
           self._acquisition_mib.validate_all()

    def init_detector_roi_modes(self):
        """
        Descript. :
        """
        if self._beamline_setup_hwobj is not None:
            roi_modes = self._beamline_setup_hwobj.detector_hwobj.get_roi_modes()
            if (len(roi_modes) > 0 and
                self.acq_widget_layout.detector_roi_mode_combo.count() == 0):
                for roi_mode in roi_modes:
                    self.acq_widget_layout.detector_roi_mode_combo.\
                         addItem(roi_mode)
                self.acq_widget_layout.detector_roi_mode_label.setEnabled(True)
                self.acq_widget_layout.detector_roi_mode_combo.setEnabled(True)
                #self._acquisition_mib.bind_value_update('detector_roi_mode',
                #               self.acq_widget_layout.detector_roi_mode_combo,
                ##               str,
                #               None)

    def update_detector_roi_mode(self, roi_mode_index):
        """
        Descript. :
        """
        if roi_mode_index is not None and \
           self.acq_widget_layout.detector_roi_mode_combo.count() > 0:
            self.acq_widget_layout.detector_roi_mode_combo.\
                 setCurrentIndex(roi_mode_index)

    def detector_roi_mode_changed(self, roi_mode_index):
        """
        Descript. :
        """
        if self._beamline_setup_hwobj is not None:
            self._beamline_setup_hwobj.detector_hwobj.set_roi_mode(roi_mode_index)

    def kappa_ledit_changed(self, new_value):
        if "kappa" not in self.value_changed_list:
            self.value_changed_list.append("kappa")
        self.emit_acq_parameters_changed()

    def kappa_phi_ledit_changed(self, new_value):
        if "kappa_phi" not in self.value_changed_list:
            self.value_changed_list.append("kappa_phi")
        self.emit_acq_parameters_changed()

    def update_data_model(self, acquisition_parameters, path_template):
        """
        Descript. :
        """
        self._acquisition_parameters = acquisition_parameters
        self._path_template = path_template        
        self._acquisition_mib.set_model(acquisition_parameters)
        
        #Update mad widgets
        mad = True if self._path_template.mad_prefix != '' else False

        if mad:
            mad_prefix = str(self._path_template.mad_prefix)
            index = MAD_ENERGY_COMBO_NAMES[str(mad_prefix)]
            self.acq_widget_layout.energies_combo.setCurrentIndex(index)
            self.acq_widget_layout.mad_cbox.setChecked(True)
            self.acq_widget_layout.energies_combo.setEnabled(True)
        else:
            self.acq_widget_layout.mad_cbox.setChecked(False)
            self.acq_widget_layout.energies_combo.setEnabled(False)
            self.acq_widget_layout.energies_combo.setCurrentIndex(0)

        #self.update_osc_start_limits()
        #self.update_osc_total_range()
        self.emit_acq_parameters_changed()

    def set_tunable_energy(self, state):
        """
        Descript. :
        """
        self.acq_widget_layout.energy_ledit.setEnabled(state)
        self.acq_widget_layout.mad_cbox.setEnabled(state)
        self.acq_widget_layout.energies_combo.setEnabled(state)
  
    def check_parameter_conflict(self):
        return self._acquisition_mib.validate_all()

    def emit_acq_parameters_changed(self):
        self.acqParametersChangedSignal.emit(self._acquisition_mib.validate_all())
开发者ID:vrey01,项目名称:mxcube,代码行数:104,代码来源:Qt4_acquisition_widget.py

示例6: DataPathWidget

# 需要导入模块: from widgets.Qt4_widget_utils import DataModelInputBinder [as 别名]
# 或者: from widgets.Qt4_widget_utils.DataModelInputBinder import set_model [as 别名]

#.........这里部分代码省略.........
        if str(self._data_model.precision).isdigit():
            file_name = self._data_model.get_image_file_name()
            file_name = file_name.replace('%' + str(self._data_model.precision) + 'd',
                                          int(self._data_model.precision) * '#' )
            file_name = file_name.strip(' ')
            self.data_path_layout.file_name_value_label.setText(file_name)

    def set_data_path(self, path):
        """
        Descript. :
        """
        (dir_name, file_name) = os.path.split(path)
        self.set_directory(dir_name)
        file_name = file_name.replace('%' + str(self._data_model.precision) + 'd',
                                      int(self._data_model.precision) * '#' )
        self.data_path_layout.file_name_value_label.setText(file_name)
    
    def set_directory(self, directory):
        """
        Descript. :
        """
        base_image_dir = self._base_image_dir
        dir_parts = directory.split(base_image_dir) 

        if len(dir_parts) > 1:
            sub_dir = dir_parts[1]
            self._data_model.directory = directory
            self.data_path_layout.folder_ledit.setText(sub_dir)
        else:
            self.data_path_layout.folder_ledit.setText('')
            self._data_model.directory = base_image_dir

        self.data_path_layout.base_path_ledit.setText(base_image_dir)       

    def set_run_number(self, run_number):
        """
        Descript. :
        """
        self._data_model.run_number = int(run_number)
        self.data_path_layout.run_number_ledit.setText(str(run_number))

    def set_prefix(self, base_prefix):
        """
        Descript. :
        """
        self._data_model.base_prefix = str(base_prefix)
        self.data_path_layout.prefix_ledit.setText(str(base_prefix))
        file_name = self._data_model.get_image_file_name()
        file_name = file_name.replace('%' + str(self._data_model.precision) + 'd',
                                      int(self._data_model.precision) * '#' )
        self.data_path_layout.file_name_value_label.setText(file_name)

    def update_data_model(self, data_model):
        """
        Descript. :
        """
        self._data_model = data_model
        self.set_data_path(data_model.get_image_path())
        self._data_model_pm.set_model(data_model)

    def indicate_path_conflict(self, conflict):
        """
        Descript. :
        """
        if conflict:
            Qt4_widget_colors.set_widget_color(\
                self.data_path_layout.prefix_ledit,
                Qt4_widget_colors.LIGHT_RED,
                QPalette.Base)
            Qt4_widget_colors.set_widget_color(\
                self.data_path_layout.run_number_ledit,
                Qt4_widget_colors.LIGHT_RED,
                QPalette.Base)
            Qt4_widget_colors.set_widget_color(\
                self.data_path_layout.folder_ledit,
                Qt4_widget_colors.LIGHT_RED,
                QPalette.Base)

            logging.getLogger("GUI").\
                error('The current path settings will overwrite data ' + \
                      'from another task. Correct the problem before ' + \
                      'adding to queue')
        else:
            # We had a conflict previous, but its corrected now !
            if self.path_conflict_state:
                logging.getLogger("GUI").info('Path valid')

                Qt4_widget_colors.set_widget_color(\
                    self.data_path_layout.prefix_ledit,
                    Qt4_widget_colors.WHITE,
                    QPalette.Base)
                Qt4_widget_colors.set_widget_color(\
                    self.data_path_layout.run_number_ledit,
                    Qt4_widget_colors.WHITE,
                    QPalette.Base)
                Qt4_widget_colors.set_widget_color(\
                    self.data_path_layout.folder_ledit,
                    Qt4_widget_colors.WHITE,
                    QPalette.Base)
        self.path_conflict_state = conflict
开发者ID:MartinSavko,项目名称:mxcube,代码行数:104,代码来源:Qt4_data_path_widget.py

示例7: ProcessingWidget

# 需要导入模块: from widgets.Qt4_widget_utils import DataModelInputBinder [as 别名]
# 或者: from widgets.Qt4_widget_utils.DataModelInputBinder import set_model [as 别名]
class ProcessingWidget(QtGui.QWidget):
    def __init__(self, parent = None, name = None, fl = 0, data_model = None):

        QtGui.QWidget.__init__(self, parent, QtCore.Qt.WindowFlags(fl))
        if name is not None:
            self.setObjectName(name)

        if data_model is None:
            self._model = queue_model_objects.ProcessingParameters()
        else:
            self._model = data_model

        self._model_mib = DataModelInputBinder(self._model)

        self.processing_widget = self.acq_widget_layout = uic.loadUi(
                           os.path.join(os.path.dirname(__file__),
                           "ui_files/Qt4_processing_widget_vertical_layout.ui"))
      
        self.main_layout = QtGui.QVBoxLayout(self)
        self.main_layout.addWidget(self.processing_widget)
        self.main_layout.setSpacing(0)
        self.main_layout.setContentsMargins(0, 0, 0, 0)
        self.setLayout(self.main_layout)  
       
        self.processing_widget.findChild(QtGui.QComboBox, 'space_group_cbox').\
            addItems(queue_model_enumerables.XTAL_SPACEGROUPS)
        
        self._model_mib.bind_value_update('cell_a',
                                          self.processing_widget.findChild(QtGui.QLineEdit, 'a_ledit'),
                                          float,
                                          None)
        
        self._model_mib.bind_value_update('cell_alpha',
                                          self.processing_widget.findChild(QtGui.QLineEdit, 'alpha_ledit'),
                                          float,
                                          None)

        self._model_mib.bind_value_update('cell_b',
                                          self.processing_widget.findChild(QtGui.QLineEdit, 'b_ledit'),
                                          float,
                                          None)

        self._model_mib.bind_value_update('cell_beta',
                                          self.processing_widget.findChild(QtGui.QLineEdit, 'beta_ledit'),
                                          float,
                                          None)  

        self._model_mib.bind_value_update('cell_c',
                                          self.processing_widget.findChild(QtGui.QLineEdit, 'c_ledit'),
                                          float,
                                          None)

        self._model_mib.bind_value_update('cell_gamma',
                                          self.processing_widget.findChild(QtGui.QLineEdit, 'gamma_ledit'),
                                          float,
                                          None)  
        
        self._model_mib.bind_value_update('num_residues',
                                          self.processing_widget.findChild(QtGui.QLineEdit, 'num_residues_ledit'),
                                          float,
                                          None)

        self.connect(self.processing_widget.findChild(QtGui.QComboBox, 'space_group_cbox'),
                     QtCore.SIGNAL("activated(int)"),
                     self._space_group_change)    

    def _space_group_change(self, index):
        self._model.space_group = queue_model_enumerables.\
            XTAL_SPACEGROUPS[index]

    def _set_space_group(self, space_group):
        index = 0

        if space_group in queue_model_enumerables.XTAL_SPACEGROUPS:
            index = queue_model_enumerables.XTAL_SPACEGROUPS.index(space_group)
        
        self._space_group_change(index)
        self.processing_widget.findChild(QtGui.QComboBox, 'space_group_cbox').setCurrentIndex(index)

    def update_data_model(self, model):
        self._model = model
        self._model_mib.set_model(model)
        self._set_space_group(model.space_group)
开发者ID:olofsvensson,项目名称:mxcube,代码行数:85,代码来源:Qt4_processing_widget.py

示例8: ProcessingWidget

# 需要导入模块: from widgets.Qt4_widget_utils import DataModelInputBinder [as 别名]
# 或者: from widgets.Qt4_widget_utils.DataModelInputBinder import set_model [as 别名]
class ProcessingWidget(QWidget):

    enableProcessingSignal = pyqtSignal(bool, bool)

    def __init__(self, parent=None, name=None, fl=0, data_model=None):

        QWidget.__init__(self, parent, Qt.WindowFlags(fl))
        if name is not None:
            self.setObjectName(name)

        if data_model is None:
            self._model = queue_model_objects.ProcessingParameters()
        else:
            self._model = data_model

        self._model_mib = DataModelInputBinder(self._model)

        self.processing_widget = self.acq_widget_layout = loadUi(
                           os.path.join(os.path.dirname(__file__),
                           "ui_files/Qt4_processing_widget_vertical_layout.ui"))
      
        self.main_layout = QVBoxLayout(self)
        self.main_layout.addWidget(self.processing_widget)
        self.main_layout.setSpacing(0)
        self.main_layout.setContentsMargins(0, 0, 0, 0)
       
        self.processing_widget.space_group_combo.\
            addItems(queue_model_enumerables.XTAL_SPACEGROUPS)
        
        self._model_mib.bind_value_update('cell_a',
                                          self.processing_widget.a_ledit,
                                          float,
                                          None)
        
        self._model_mib.bind_value_update('cell_alpha',
                                          self.processing_widget.alpha_ledit,
                                          float,
                                          None)

        self._model_mib.bind_value_update('cell_b',
                                          self.processing_widget.b_ledit,
                                          float,
                                          None)

        self._model_mib.bind_value_update('cell_beta',
                                          self.processing_widget.beta_ledit,
                                          float,
                                          None)  

        self._model_mib.bind_value_update('cell_c',
                                          self.processing_widget.c_ledit,
                                          float,
                                          None)

        self._model_mib.bind_value_update('cell_gamma',
                                          self.processing_widget.gamma_ledit,
                                          float,
                                          None)  
        
        self._model_mib.bind_value_update('num_residues',
                                          self.processing_widget.num_residues_ledit,
                                          float,
                                          None)

        self.processing_widget.space_group_combo.activated.\
             connect(self._space_group_change)    
        self.processing_widget.run_processing_after_cbox.stateChanged.\
             connect(self._run_processing_after_toggled)
        self.processing_widget.run_processing_parallel_cbox.stateChanged.\
             connect(self._run_processing_parallel_toggled)

    def _space_group_change(self, index):
        self._model.space_group = queue_model_enumerables.\
            XTAL_SPACEGROUPS[index]

    def _set_space_group(self, space_group):
        index = 0

        if space_group in queue_model_enumerables.XTAL_SPACEGROUPS:
            index = queue_model_enumerables.XTAL_SPACEGROUPS.index(space_group)
        
        self._space_group_change(index)
        self.processing_widget.space_group_combo.setCurrentIndex(index)

    def update_data_model(self, model):
        self._model = model
        self._model_mib.set_model(model)
        self._set_space_group(model.space_group)

    def _run_processing_after_toggled(self, state):
        self.enableProcessingSignal.emit(\
             self.processing_widget.run_processing_after_cbox.isChecked(),
             self.processing_widget.run_processing_parallel_cbox.isChecked())

    def _run_processing_parallel_toggled(self, state):
        self.enableProcessingSignal.emit(\
             self.processing_widget.run_processing_after_cbox.isChecked(),
             self.processing_widget.run_processing_parallel_cbox.isChecked())
开发者ID:vrey01,项目名称:mxcube,代码行数:100,代码来源:Qt4_processing_widget.py

示例9: AcquisitionWidget

# 需要导入模块: from widgets.Qt4_widget_utils import DataModelInputBinder [as 别名]
# 或者: from widgets.Qt4_widget_utils.DataModelInputBinder import set_model [as 别名]

#.........这里部分代码省略.........
    def update_detector_exp_time_limits(self, limits):
        if limits:
            self.exp_time_validator.setRange(limits[0], limits[1], 4)
            self.acq_widget_layout.exp_time_ledit.setToolTip(
               "Exposure time limits %0.3f : %0.3f" %(limits[0], limits[1]))
            self._acquisition_mib.validate_all()

    def update_osc_range_limits(self, exp_time):
        osc_range = 40.0 * exp_time
        self.osc_range_validator.setRange(0, osc_range, 4)
        self.acq_widget_layout.osc_range_ledit.setToolTip(
              "Oscillation range limits %0.2f : %0.2f" %(0, osc_range))
        self._acquisition_mib.validate_all()

    def update_num_image_limits(self):
        try:
           osc_start = float(self.acq_widget_layout.osc_start_ledit.text())
           osc_range = float(self.acq_widget_layout.osc_range_ledit.text())
        except ValueError:
           return

        if osc_range == 0:
            return
        if self._beamline_setup_hwobj.diffractometer_hwobj.in_plate_mode():
            num_image_limit = int((self.osc_start_validator.top() - osc_start) / osc_range)
        else:
            num_image_limit = 99999

        self.num_img_validator.setTop(num_image_limit)
        self.acq_widget_layout.num_images_ledit.setToolTip(\
              "Number of frames limit : %d" % num_image_limit)
        self._acquisition_mib.validate_all()

    def init_detector_roi_modes(self):
        if self._beamline_setup_hwobj is not None:
            roi_modes = self._beamline_setup_hwobj._get_roi_modes()
            if (len(roi_modes) > 0 and
                self.acq_widget_layout.detector_roi_mode_combo.count() == 0):
                for roi_mode in roi_modes:
                    self.acq_widget_layout.detector_roi_mode_combo.\
                         addItem(roi_mode)
                self.acq_widget_layout.detector_roi_mode_label.setEnabled(True)
                self.acq_widget_layout.detector_roi_mode_combo.setEnabled(True)
                #self._acquisition_mib.bind_value_update('detector_roi_mode',
                #               self.acq_widget_layout.detector_roi_mode_combo,
                ##               str,
                #               None)

    def update_detector_roi_mode(self, roi_mode_index):
        if self.acq_widget_layout.detector_roi_mode_combo.count() > 0:
            self.acq_widget_layout.detector_roi_mode_combo.\
                 setCurrentIndex(roi_mode_index)

    def detector_roi_mode_changed(self, roi_mode_index):
        if self._beamline_setup_hwobj is not None:
            self._beamline_setup_hwobj.detector_hwobj.set_roi_mode(roi_mode_index)

    def update_data_model(self, acquisition_parameters, path_template):
        """
        Descript. :
        """
        self._acquisition_parameters = acquisition_parameters
        self._path_template = path_template
        self._acquisition_mib.set_model(acquisition_parameters)
        
        #Update mad widgets
        mad = True if self._path_template.mad_prefix != '' else False

        if mad:
            mad_prefix = self._path_template.mad_prefix
            index = MAD_ENERGY_COMBO_NAMES[mad_prefix]
            self.acq_widget_layout.energies_combo.setCurrentIndex(index)
            self.acq_widget_layout.mad_cbox.setChecked(True)
            self.acq_widget_layout.energies_combo.setEnabled(True)
        else:
            self.acq_widget_layout.mad_cbox.setChecked(False)
            self.acq_widget_layout.energies_combo.setEnabled(False)
            self.acq_widget_layout.energies_combo.setCurrentIndex(0)

    def set_tunable_energy(self, state):
        """
        Descript. :
        """
        self.acq_widget_layout.energy_ledit.setEnabled(state)
        self.acq_widget_layout.mad_cbox.setEnabled(state)
        self.acq_widget_layout.energies_combo.setEnabled(state)

    def disable_inverse_beam(self, state):
        """
        Descript. :
        """
        self.acq_widget_layout.inverse_beam_cbx.setDisabled(state)
        self.acq_widget_layout.subwedge_size_label.setDisabled(state)
        self.acq_widget_layout.subwedge_size_ledit.setDisabled(state)

    def hide_aperture(self, state):
        """
        Descript. :
        """
        pass
开发者ID:douglasbeniz,项目名称:mxcube,代码行数:104,代码来源:Qt4_acquisition_widget.py

示例10: AcquisitionStillWidget

# 需要导入模块: from widgets.Qt4_widget_utils import DataModelInputBinder [as 别名]
# 或者: from widgets.Qt4_widget_utils.DataModelInputBinder import set_model [as 别名]

#.........这里部分代码省略.........
               (limits[0], limits[1]) + \
               "4 digits precision.")
            self._acquisition_mib.validate_all()

    def update_transmission_limits(self, limits):
        if limits:
            self.transmission_validator.setBottom(limits[0])
            self.transmission_validator.setTop(limits[1])
            self.acq_widget_layout.transmission_ledit.setToolTip(\
               "Transmission limits %0.2f : %0.2f %%\n" % \
               (limits[0], limits[1]) + \
               "2 digits precision.")
            self._acquisition_mib.validate_all()

    def update_resolution_limits(self, limits):
        if limits:
            self.resolution_validator.setBottom(limits[0])
            self.resolution_validator.setTop(limits[1])
            self.acq_widget_layout.resolution_ledit.setToolTip(
               "Resolution limits %0.4f : %0.4f %s\n" % \
               (limits[0], limits[1], chr(197)) + 
               "4 digits precision.")
            self._acquisition_mib.validate_all()

    def update_detector_exp_time_limits(self, limits):
        if limits:
            self.exp_time_validator.setRange(limits[0], limits[1], 6)
            self.acq_widget_layout.exp_time_ledit.setToolTip(
               "Exposure time limits %0.6f s : %0.1f s\n" % \
               (limits[0], limits[1]) + \
               "6 digits precision.")
            self._acquisition_mib.validate_all()

    def init_detector_roi_modes(self):
        if self._beamline_setup_hwobj is not None:
            roi_modes = self._beamline_setup_hwobj.detector_hwobj.get_roi_modes()
            if (len(roi_modes) > 0 and
                self.acq_widget_layout.detector_roi_mode_combo.count() == 0):
                for roi_mode in roi_modes:
                    self.acq_widget_layout.detector_roi_mode_combo.\
                         addItem(roi_mode)
            self.acq_widget_layout.detector_roi_mode_label.setEnabled(len(roi_modes) > 1)
            self.acq_widget_layout.detector_roi_mode_combo.setEnabled(len(roi_modes) > 1)

    def update_detector_roi_mode(self, roi_mode_index):
        if roi_mode_index is not None and \
           self.acq_widget_layout.detector_roi_mode_combo.count() > 0:
            self.acq_widget_layout.detector_roi_mode_combo.\
                 setCurrentIndex(roi_mode_index)

    def detector_roi_mode_changed(self, roi_mode_index):
        if self._beamline_setup_hwobj is not None:
            self._beamline_setup_hwobj.detector_hwobj.set_roi_mode(roi_mode_index)

    def update_osc_range_per_frame_limits(self):
        pass

    def update_exp_time_limits(self):
        pass

    def update_osc_start(self, value):
        pass

    def update_kappa(self, value):
        pass

    def update_kappa_phi(self, value):
        pass

    def update_data_model(self, acquisition_parameters, path_template):
        self._acquisition_parameters = acquisition_parameters
        self._path_template = path_template        
        self._acquisition_mib.set_model(acquisition_parameters)
        self.emit_acq_parameters_changed()

    def check_parameter_conflict(self):
        return self._acquisition_mib.validate_all()

    def emit_acq_parameters_changed(self):
        self.acqParametersChangedSignal.emit(self._acquisition_mib.validate_all())

    def set_energies(self, energies):
        pass

    def num_triggers_ledit_changed(self, value):
        if "num_triggers" not in self.value_changed_list:
            self.value_changed_list.append("num_triggers")
        self.update_num_images()
        self.emit_acq_parameters_changed()

    def num_images_per_trigger_ledit_changed(self, values):
        if "num_images_per_trigger" not in self.value_changed_list:
            self.value_changed_list.append("num_images_per_trigger")
        self.update_num_images()   
        self.emit_acq_parameters_changed()

    def update_num_images(self):
        self.acq_widget_layout.num_images_ledit.setText(\
             str(self._acquisition_parameters.num_triggers * \
                 self._acquisition_parameters.num_images_per_trigger))
开发者ID:vrey01,项目名称:mxcube,代码行数:104,代码来源:Qt4_acquisition_still_widget.py

示例11: GphlSetupWidget

# 需要导入模块: from widgets.Qt4_widget_utils import DataModelInputBinder [as 别名]
# 或者: from widgets.Qt4_widget_utils.DataModelInputBinder import set_model [as 别名]
class GphlSetupWidget(QtGui.QWidget):
    """Superclass for GPhL interface widgets"""

    def __init__(self, parent=None, name='gphl_setup_widget'):
        QtGui.QWidget.__init__(self,parent)
        if name is not None:
            self.setObjectName(name)

        # Properties ----------------------------------------------------------

        # Signals ------------------------------------------------------------

        # Slots ---------------------------------------------------------------
        dispatcher.connect(self._refresh_interface, 'model_update',
                           dispatcher.Any)

        # Hardware objects ----------------------------------------------------

        # Internal variables -------------------------------------------------
        self._widget_data = OrderedDict()
        self._data_object = GphlAcquisitionData()
        self._pulldowns = {}
        self._parameter_mib = DataModelInputBinder(self._data_object)

        # Graphic elements ----------------------------------------------------
        _parameters_widget = self._parameters_widget = QtGui.QWidget(self)
        QtGui.QGridLayout(_parameters_widget)
        _parameters_widget.layout().setColumnStretch(2, 1)

        # Layout --------------------------------------------------------------
        # This seems to be necessary to make widget visible
        _main_vlayout = QtGui.QVBoxLayout(self)
        _main_vlayout.addWidget(_parameters_widget)
        _main_vlayout.setSpacing(0)
        _main_vlayout.setContentsMargins(0, 0, 0, 0)

    def setEnabled(self, value):
        super(GphlSetupWidget, self).setEnabled(value)
        for tag in self._widget_data:
            self.set_parameter_enabled(tag, value, warn=False)

    def set_parameter_enabled(self, tag, value, warn=True):
        tt = self._widget_data.get(tag)
        if tt:
            if hasattr(tt[0], 'setEnabled'):
                tt[0].setEnabled(value)
            elif warn:
                logging.getLogger().warning(
                    "%s Widget has no attribute setEnabled" % tag
                )
        elif warn:
            logging.getLogger().warning(
                "%s field not found in GphlSetupWidget" % tag
            )

    def get_data_object(self):
        return self._data_object

    def populate_widget(self, **kw):

        self._data_object = data_object = GphlAcquisitionData()
        self._parameter_mib.bindings.clear()
        # NB must be done here to set empty model, and also in subclasses:
        self._parameter_mib.set_model(data_object)
        for field_name, tags in self._pulldowns.items():
            widget = self._widget_data[field_name][0]
            widget.clear()
            widget.addItems(list(QtCore.QString(tag) for tag in tags))
            widget.setCurrentIndex(0)

    def set_parameter_value(self, name, value):
        """Set value - NB ComboBoxes are set by text, not index"""
        if hasattr(self._data_object, name):
            tags = self._pulldowns.get(name)
            if tags is None:
                # Not a pulldown
                setattr(self._data_object, name, value)
            else:
                # This is a pulldown
                if value in tags:
                    indx = tags.index(value)
                    setattr(self._data_object, name, indx)

                else:
                    raise ValueError(
                        "GPhL acquisition widget %s pulldown has no value %s"
                        % (name, value)
                    )

            self._parameter_mib._update_widget(name, None)
        else:
            raise ValueError(
                "GPhL acquisition widget has no parameter named %s" % name
            )

    def get_parameter_value(self, name):
        """Return value of parameter <name> or None if it does not exist

        NB ComboBoxes return text values, not indices

#.........这里部分代码省略.........
开发者ID:MartinSavko,项目名称:mxcube,代码行数:103,代码来源:Qt4_gphl_acquisition_widget.py

示例12: XrayImagingParametersWidget

# 需要导入模块: from widgets.Qt4_widget_utils import DataModelInputBinder [as 别名]
# 或者: from widgets.Qt4_widget_utils.DataModelInputBinder import set_model [as 别名]
class XrayImagingParametersWidget(QWidget):

    def __init__(self, parent=None, name=None, fl=0, xray_imaging_params=None):

        QWidget.__init__(self, parent, Qt.WindowFlags(fl))
        
        if name is not None:
            self.setObjectName(name)

        # Hardware objects ----------------------------------------------------
        self._beamline_setup_hwobj = None

        # Internal variables --------------------------------------------------

        # Properties ---------------------------------------------------------- 

        # Signals -------------------------------------------------------------

        # Slots ---------------------------------------------------------------

        # Graphic elements ----------------------------------------------------
        if xray_imaging_params is None: 
            self._xray_imaging_parameters = \
               queue_model_objects.XrayImagingParameters()
        else:
            self._xray_imaging_parameters = xray_imaging_params 

        self._xray_imaging_mib = DataModelInputBinder(self._xray_imaging_parameters)

        self._parameters_widget = loadUi(os.path.join(\
             os.path.dirname(__file__),
             "ui_files/Qt4_xray_imaging_parameters_widget_layout.ui"))
        # Layout --------------------------------------------------------------
        __main_vlayout = QVBoxLayout(self)
        __main_vlayout.addWidget(self._parameters_widget)
        __main_vlayout.setSpacing(0)
        __main_vlayout.setContentsMargins(0, 0, 0, 0)

        # SizePolicies --------------------------------------------------------

        # Qt signal/slot connections ------------------------------------------

        # Other --------------------------------------------------------------- 

    def set_beamline_setup(self, beamline_setup):
        """Sets beamline setup and links qt gui with data model
        """
        self._beamline_setup_hwobj = beamline_setup

        self._xray_imaging_mib.\
             bind_value_update('camera_hw_binning',
                               self._parameters_widget.camera_hw_binning_combo,
                               int,
                               None)

        self._xray_imaging_mib.\
             bind_value_update('camera_hw_roi',
                               self._parameters_widget.camera_hw_roi_combo,
                               int,
                               None)

        self._xray_imaging_mib.\
             bind_value_update('store_data',
                               self._parameters_widget.store_data_cbox,
                               bool,
                               None)

        self._xray_imaging_mib.\
             bind_value_update('live_display',
                               self._parameters_widget.live_display_cbox,
                               bool,
                               None)

        self._xray_imaging_mib.\
             bind_value_update('pre_flat_field_frames',
                               self._parameters_widget.pre_flat_cbox,
                               bool,
                               None)

        self._xray_imaging_mib.\
             bind_value_update('post_flat_field_frames',
                               self._parameters_widget.post_flat_cbox,
                               bool,
                               None)

        self._xray_imaging_mib.\
             bind_value_update('apply_pre_flat_field_frames',
                               self._parameters_widget.apply_flat_cbox,
                               bool,
                               None)
 
    def update_data_model(self, xray_imaging_parameters):
        """
        Descript. :
        """
        self._xray_imaging_parameters = xray_imaging_parameters
        self._xray_imaging_mib.set_model(xray_imaging_parameters)
开发者ID:vrey01,项目名称:mxcube,代码行数:99,代码来源:Qt4_xray_imaging_parameters_widget.py

示例13: CreateCharWidget

# 需要导入模块: from widgets.Qt4_widget_utils import DataModelInputBinder [as 别名]
# 或者: from widgets.Qt4_widget_utils.DataModelInputBinder import set_model [as 别名]

#.........这里部分代码省略.........
                energy = round(float(energy), 4)
            except AttributeError:
                energy = 0

            self._acquisition_parameters.resolution = resolution
            self._acquisition_parameters.energy = energy
            self._acquisition_parameters.transmission = transmission
        else:
            self._acquisition_parameters = queue_model_objects.AcquisitionParameters()
        
          
        return 
    
        self._path_template.reference_image_prefix = 'ref'
        # The num images drop down default value is 1
        # we would like it to be 2
        self._acquisition_parameters.num_images = 2
        self._char.characterisation_software =\
            queue_model_enumerables.COLLECTION_ORIGIN.EDNA
        self._path_template.num_files = 2
        self._acquisition_parameters.shutterless = False

    def single_item_selection(self, tree_item):
        """
        Descript. :
        """
        CreateTaskBase.single_item_selection(self, tree_item)
        
        if isinstance(tree_item, Qt4_queue_item.SampleQueueItem):
            self._init_models()
            self._set_space_group(self._char_params.space_group)
            self._acq_widget.update_data_model(self._acquisition_parameters,
                                                self._path_template)
            self._char_params_mib.set_model(self._char_params)
            #self._char_params = copy.deepcopy(self._char_params)
            #self._acquisition_parameters = copy.deepcopy(self._acquisition_parameters)

        elif isinstance(tree_item, Qt4_queue_item.CharacterisationQueueItem):
            if tree_item.get_model().is_executed():
                self.setDisabled(True)
            else:
                self.setDisabled(False)

            self._char = tree_item.get_model()

            if self._char.get_path_template():
                self._path_template = self._char.get_path_template()

            self._data_path_widget.update_data_model(self._path_template)
            
            data_collection = self._char.reference_image_collection

            self._char_params = self._char.characterisation_parameters
            self._char_params_mib.set_model(self._char_params)

            self._acquisition_parameters = data_collection.acquisitions[0].\
                                           acquisition_parameters

            self._acq_widget.update_data_model(self._acquisition_parameters,
                                               self._path_template)
            self.get_acquisition_widget().use_osc_start(True)

            if len(data_collection.acquisitions) == 1:
                self.select_shape_with_cpos(self._acquisition_parameters.\
                                            centred_position)
开发者ID:folf,项目名称:mxcube,代码行数:69,代码来源:Qt4_create_char_widget.py

示例14: DataPathWidget

# 需要导入模块: from widgets.Qt4_widget_utils import DataModelInputBinder [as 别名]
# 或者: from widgets.Qt4_widget_utils.DataModelInputBinder import set_model [as 别名]

#.........这里部分代码省略.........
        Qt4_widget_colors.set_widget_color(self.data_path_layout.folder_ledit,
                                           Qt4_widget_colors.WHITE)

        self.emit(QtCore.SIGNAL('pathTemplateChanged'),
                  self.data_path_layout.folder_ledit,
                  new_value)

    def update_file_name(self):
        """
        Descript. : updates filename if prefix or run number changed
                    at start values are initalized before precision is set.
                    so a check for isdigit is done to be on the safe side
        """
        if str(self._data_model.precision).isdigit():
            file_name = self._data_model.get_image_file_name()
            file_name = file_name.replace('%' + self._data_model.precision + 'd',
                                          int(self._data_model.precision) * '#' )
            file_name = file_name.strip(' ')
            self.data_path_layout.file_name_value_label.setText(file_name)

    def set_data_path(self, path):
        """
        Descript. :
        """
        (dir_name, file_name) = os.path.split(path)
        self.set_directory(dir_name)
        file_name = file_name.replace('%' + self._data_model.precision + 'd',
                                      int(self._data_model.precision) * '#' )
        self.data_path_layout.file_name_value_label.setText(file_name)
    
    def set_directory(self, directory):
        """
        Descript. :
        """
        base_image_dir = self._base_image_dir
        dir_parts = directory.split(base_image_dir)

        if len(dir_parts) > 1:
            sub_dir = dir_parts[1]        
            self._data_model.directory = directory
            self.data_path_layout.folder_ledit.setText(sub_dir)
        else:
            self.data_path_layout.folder_ledit.setText('')
            self._data_model.directory = base_image_dir

        self.data_path_layout.base_path_ledit.setText(base_image_dir)

    def set_run_number(self, run_number):
        """
        Descript. :
        """
        self._data_model.run_number = int(run_number)
        self.data_path_layout.run_number_ledit.setText(str(run_number))

    def set_prefix(self, base_prefix):
        """
        Descript. :
        """
        self._data_model.base_prefix = str(base_prefix)
        self.data_path_layout.prefix_ledit.setText(str(base_prefix))
        file_name = self._data_model.get_image_file_name()
        file_name = file_name.replace('%' + self._data_model.precision + 'd',
                                      int(self._data_model.precision) * '#' )
        self.data_path_layout.file_name_value_label.setText(file_name)

    def update_data_model(self, data_model):
        """
        Descript. :
        """
        self._data_model = data_model
        self.set_data_path(data_model.get_image_path())
        self._data_model_pm.set_model(data_model)

    def indicate_path_conflict(self, conflict):
        """
        Descript. :
        """
        if conflict:
            Qt4_widget_colors.set_widget_color(self.data_path_layout.prefix_ledit,
                Qt4_widget_colors.LIGHT_RED, QtGui.QPalette.Base)
            Qt4_widget_colors.set_widget_color(self.data_path_layout.run_number_ledit,
                Qt4_widget_colors.LIGHT_RED, QtGui.QPalette.Base)
            Qt4_widget_colors.set_widget_color(self.data_path_layout.folder_ledit,
                Qt4_widget_colors.LIGHT_RED, QtGui.QPalette.Base)

            logging.getLogger("user_level_log").\
                error('The current path settings will overwrite data' +\
                          ' from another task. Correct the problem before adding to queue')
        else:
            # We had a conflict previous, but its corrected now !
            if self.path_conflict_state:
                logging.getLogger("user_level_log").info('Path valid')

            Qt4_widget_colors.set_widget_color(self.data_path_layout.prefix_ledit,
                Qt4_widget_colors.WHITE, QtGui.QPalette.Base)
            Qt4_widget_colors.set_widget_color(self.data_path_layout.run_number_ledit,
                Qt4_widget_colors.WHITE, QtGui.QPalette.Base)
            Qt4_widget_colors.set_widget_color(self.data_path_layout.folder_ledit,
                Qt4_widget_colors.WHITE, QtGui.QPalette.Base)
        self.path_conflict_state = conflict
开发者ID:folf,项目名称:mxcube,代码行数:104,代码来源:Qt4_data_path_widget.py


注:本文中的widgets.Qt4_widget_utils.DataModelInputBinder.set_model方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。