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


Python DataModelInputBinder.bind_value_update方法代码示例

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


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

示例1: CreateCharWidget

# 需要导入模块: from widgets.Qt4_widget_utils import DataModelInputBinder [as 别名]
# 或者: from widgets.Qt4_widget_utils.DataModelInputBinder import bind_value_update [as 别名]
class CreateCharWidget(CreateTaskBase):
    """
    Descript. :
    """

    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,
#.........这里部分代码省略.........
开发者ID:vrey01,项目名称:mxcube,代码行数:103,代码来源:Qt4_create_char_widget.py

示例2: Qt4_SampleDetailsBrick

# 需要导入模块: from widgets.Qt4_widget_utils import DataModelInputBinder [as 别名]
# 或者: from widgets.Qt4_widget_utils.DataModelInputBinder import bind_value_update [as 别名]
class Qt4_SampleDetailsBrick(BlissWidget):
    """
    Descript. :
    """
    def __init__(self, *args):
        """
        Descript. :
        """
        BlissWidget.__init__(self, *args)

        # Internal variables ------------------------------------------------
        self.sample = queue_model_objects.Sample()
        self.crystal = self.sample.crystals[0]
        self.sample_mib = DataModelInputBinder(self.sample)
        self.crystal_mib = DataModelInputBinder(self.crystal)
       
        # Signals ------------------------------------------------------------ 

        # Slots --------------------------------------------------------------
        self.defineSlot("populate_sample_details", ({}))

        # Graphic elements ----------------------------------------------------
        _info_widget = QtGui.QWidget(self)
        self.crystal_widget = uic.loadUi(os.path.join(
                            os.path.dirname(__file__),
                            "widgets/ui_files/Qt4_crystal_widget_layout.ui"))
        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',
#.........这里部分代码省略.........
开发者ID:hzb-mx,项目名称:mxcube,代码行数:103,代码来源:Qt4_SampleDetailsBrick.py

示例3: CharParametersWidget

# 需要导入模块: from widgets.Qt4_widget_utils import DataModelInputBinder [as 别名]
# 或者: from widgets.Qt4_widget_utils.DataModelInputBinder import bind_value_update [as 别名]
class CharParametersWidget(QtGui.QWidget):
    """
    Descript. : 
    """

    def __init__(self, parent = None, name = "parameter_widget"):
        """
        Descript. :
        """

        QtGui.QWidget.__init__(self, parent)

        if name is not None: 
            self.setObjectName(name)

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

        # Internal variables --------------------------------------------------
        self._char = None
        self._char_params = queue_model_objects.CharacterisationParameters()
        self._char_params_mib = DataModelInputBinder(self._char_params)
        self._tree_view_item = None
        self.previous_energy = None
        
        self.add_dc_cb = None
        
        # Graphic elements ----------------------------------------------------
        rone_widget = QtGui.QWidget(self)
        self.reference_img_widget = ReferenceImageWidget(rone_widget)
        self.acq_widget = self.reference_img_widget.acq_widget
        self.path_widget = self.reference_img_widget.path_widget
        self.position_widget = uic.loadUi(os.path.join(os.path.dirname(__file__),
                                          'ui_files/Qt4_snapshot_widget_layout.ui'))
        self.position_widget.setMinimumSize(450, 340)

        rtwo_widget = QtGui.QWidget(self)
        self.char_type_widget = CharTypeWidget(rtwo_widget)
        self.routine_dc_widget = self.char_type_widget.routine_dc_page
        self.sad_widget = self.char_type_widget.sad_page
        self.rad_dmg_char_widget = self.char_type_widget.rad_damage_page
        self.opt_parameters_widget = OptimisationParametersWidgetLayout(self)
        
        rtree_widget = QtGui.QWidget(self)
        self.rad_dmg_widget = uic.loadUi(os.path.join(os.path.dirname(__file__),
             'ui_files/Qt4_radiation_damage_model_widget_layout.ui'))
        self.vertical_dimension_widget = uic.loadUi(os.path.join(os.path.dirname(__file__),
             'ui_files/Qt4_vertical_crystal_dimension_widget_layout.ui'))

        # Layout --------------------------------------------------------------
        rone_widget_layout = QtGui.QHBoxLayout(self)
        rone_widget_layout.addWidget(self.reference_img_widget)
        rone_widget_layout.addWidget(self.position_widget)
        #rone_widget_layout.addStretch(0)
        rone_widget_layout.setSpacing(2)
        rone_widget_layout.setContentsMargins(0, 0, 0, 0)
        rone_widget.setLayout(rone_widget_layout)

        rtwo_widget_layout = QtGui.QHBoxLayout(self)
        rtwo_widget_layout.addWidget(self.char_type_widget)
        rtwo_widget_layout.addWidget(self.opt_parameters_widget)
        rtwo_widget_layout.addStretch(0)
        rtwo_widget_layout.setSpacing(2)
        rtwo_widget_layout.setContentsMargins(0, 0, 0, 0)
        rtwo_widget.setLayout(rtwo_widget_layout)

        rtree_widget_layout = QtGui.QHBoxLayout(self)
        rtree_widget_layout.addWidget(self.rad_dmg_widget)
        rtree_widget_layout.addWidget(self.vertical_dimension_widget)
        rtree_widget_layout.addStretch(0)
        rtree_widget_layout.setSpacing(2)
        rtree_widget_layout.setContentsMargins(0, 0, 0, 0)
        rtree_widget.setLayout(rtree_widget_layout)

        _main_vlayout = QtGui.QVBoxLayout(self)
        _main_vlayout.addWidget(rone_widget)
        _main_vlayout.addWidget(rtwo_widget)
        _main_vlayout.addWidget(rtree_widget)
        _main_vlayout.setSpacing(2)
        _main_vlayout.setContentsMargins(0, 0, 0, 0)
        self.setLayout(_main_vlayout)

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

        # Qt signal/slot connections ------------------------------------------
        self.toggle_permitted_range(self.opt_parameters_widget.\
             opt_param_widget.permitted_range_cbx.isChecked())

        self.opt_parameters_widget.opt_param_widget.permitted_range_cbx.\
             toggled.connect(self.toggle_permitted_range)

        # Other ---------------------------------------------------------------
        self._char_params_mib.bind_value_update('min_dose',
                                                 self.routine_dc_widget.dose_ledit,
                                                 float,
                                                 QtGui.QDoubleValidator(0.0, 1000, 2, self))

        self._char_params_mib.bind_value_update('min_time',
                                                 self.routine_dc_widget.time_ledit,
                                                 float,
                                                 QtGui.QDoubleValidator(0.0, 1000, 2, self))
#.........这里部分代码省略.........
开发者ID:folf,项目名称:mxcube,代码行数:103,代码来源:Qt4_char_parameters_widget.py

示例4: AcquisitionWidgetSimple

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

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

    def get_mad_energy(self):
        """
        Descript. :
        """
        pass

    def set_energies(self, energy_scan_result):
        """
        Descript. :
        """
        pass

    def energy_selected(self, index):
        """
        Descript. :
        """
        pass

    def set_beamline_setup(self, beamline_setup):
        """
        Descript. :
        """
        self._beamline_setup_hwobj = beamline_setup
        limits_dict = self._beamline_setup_hwobj.get_acquisition_limit_values()

        if 'osc_range' in limits_dict:
            limits = tuple(map(float, limits_dict['osc_range'].split(',')))
            (lower, upper) = limits
            elf.osc_start_validator.setRange(lower, upper, 4)
            self.osc_range_validator.setRange(lower, upper, 4)

        self._acquisition_mib.bind_value_update('osc_start', 
                                                self.acq_widget_layout.osc_start_ledit,
                                                float, 
                                                self.osc_start_validator)

        self._acquisition_mib.bind_value_update('osc_range', 
                                                self.acq_widget_layout.osc_range_ledit,
                                                float, 
                                                self.osc_range_validator)

        if 'kappa' in limits_dict:
            limits = tuple(map(float, limits_dict['kappa'].split(',')))
            (lower, upper) = limits
            self.kappa_validator.setRange(lower, upper, 4)
        self._acquisition_mib.bind_value_update('kappa', 
                                                self.acq_widget_layout.kappa_ledit,
                                                float,
                                                self.kappa_validator)

        if 'kappa_phi' in limits_dict:
            limits = tuple(map(float, limits_dict['kappa_phi'].split(',')))
            (lower, upper) = limits
            self.kappa_phi_validator.setRange(lower, upper, 4)
        self._acquisition_mib.bind_value_update('kappa_phi',     
                                                self.acq_widget_layout.kappa_phi_ledit,
                                                float,
                                                self.kappa_phi_validator)

        if 'exposure_time' in limits_dict:
            limits = tuple(map(float, limits_dict['exposure_time'].split(',')))
            (lower, upper) = limits
            self.exp_time_validator.setRange(lower, upper, 5)
开发者ID:jordiandreu,项目名称:mxcube,代码行数:69,代码来源:Qt4_acquisition_widget_simple.py

示例5: AcquisitionWidget

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

#.........这里部分代码省略.........
        """
        self.acq_widget_layout.osc_start_cbox.setVisible(state)
        self.acq_widget_layout.osc_start_label.setVisible(not state)
        self.acq_widget_layout.osc_start_ledit.setEnabled(not state)

    def use_kappa(self, state):
        """
        Descript. :
        """
        if self._diffractometer_hwobj is not None:
            if self._diffractometer_hwobj.in_plate_mode():
                state = False
        self.acq_widget_layout.kappa_label.setEnabled(state)
        self.acq_widget_layout.kappa_ledit.setEnabled(state)
        self.acq_widget_layout.kappa_phi_label.setEnabled(state)
        self.acq_widget_layout.kappa_phi_ledit.setEnabled(state)

    def set_beamline_setup(self, beamline_setup):
        """
        Descript. :
        """
        self._beamline_setup_hwobj = beamline_setup
        limits_dict = self._beamline_setup_hwobj.get_acquisition_limit_values()
        self._diffractometer_hwobj = self._beamline_setup_hwobj.diffractometer_hwobj
 
        
        if 'osc_range' in limits_dict:
            limits = tuple(map(float, limits_dict['osc_range'].split(',')))
            (lower, upper) = limits
            self.osc_start_validator.setRange(lower, upper, 4)
            self.osc_range_per_frame_validator.setRange(lower, upper, 4)
            self.osc_total_range_validator.setRange(lower, upper, 4)

        self._acquisition_mib.bind_value_update('osc_start', 
                                                self.acq_widget_layout.osc_start_ledit,
                                                float, 
                                                self.osc_start_validator)

        self._acquisition_mib.bind_value_update('osc_range', 
                                                self.acq_widget_layout.osc_range_ledit,
                                                float, 
                                                self.osc_range_per_frame_validator)

        self._acquisition_mib.bind_value_update('osc_total_range',
                                                self.acq_widget_layout.osc_total_range_ledit,
                                                float,
                                                self.osc_total_range_validator)

        if 'kappa' in limits_dict:
            limits = tuple(map(float, limits_dict['kappa'].split(',')))
            (lower, upper) = limits
            self.kappa_validator.setRange(lower, upper, 4)
        self._acquisition_mib.bind_value_update('kappa', 
                                                self.acq_widget_layout.kappa_ledit,
                                                float,
                                                self.kappa_validator)

        if 'kappa_phi' in limits_dict:
            limits = tuple(map(float, limits_dict['kappa_phi'].split(',')))
            (lower, upper) = limits
            self.kappa_phi_validator.setRange(lower, upper, 4)
        self._acquisition_mib.bind_value_update('kappa_phi',     
                                                self.acq_widget_layout.kappa_phi_ledit,
                                                float,
                                                self.kappa_phi_validator)
开发者ID:vrey01,项目名称:mxcube,代码行数:69,代码来源:Qt4_acquisition_widget.py

示例6: DataPathWidget

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

    pathTemplateChangedSignal = pyqtSignal()

    def __init__(self, parent = None, name = '', fl = 0, data_model = None, 
                 layout = None):
        QWidget.__init__(self, parent, Qt.WindowFlags(fl))
        if name is not None:
            self.setObjectName(name)

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

        # Internal variables --------------------------------------------------
        self._base_image_dir = None
        self._base_process_dir = None
        self.path_conflict_state = False
        self.enable_macros = False
        
        if data_model is None:
            self._data_model = queue_model_objects.PathTemplate()
        else:
            self._data_model = data_model
        
        self._data_model_pm = DataModelInputBinder(self._data_model)

        # Graphic elements ----------------------------------------------------
        if layout == "vertical":
            self.data_path_layout = loadUi(\
                 os.path.join(os.path.dirname(__file__),
                 "ui_files/Qt4_data_path_widget_vertical_layout.ui"))
        else:
            self.data_path_layout = loadUi(\
                 os.path.join(os.path.dirname(__file__),
                 "ui_files/Qt4_data_path_widget_horizontal_layout.ui"))

        # Layout --------------------------------------------------------------
        _main_vlayout = QVBoxLayout(self)
        _main_vlayout.addWidget(self.data_path_layout)
        _main_vlayout.setSpacing(0)
        _main_vlayout.setContentsMargins(0, 0, 0, 0)

        # Qt signal/slot connections ------------------------------------------ 
        self.data_path_layout.prefix_ledit.textChanged.\
             connect(self._prefix_ledit_change)
        self.data_path_layout.run_number_ledit.textChanged.\
             connect(self._run_number_ledit_change)
        self.data_path_layout.browse_button.clicked.\
             connect(self._browse_clicked)
        self.data_path_layout.folder_ledit.textChanged.\
             connect(self._folder_ledit_change)
        self.data_path_layout.compression_cbox.toggled.\
             connect(self._compression_toggled)

        # Other ---------------------------------------------------------------
        self._data_model_pm.bind_value_update('base_prefix', 
             self.data_path_layout.prefix_ledit, str, None)
        
        self._data_model_pm.bind_value_update('run_number', 
             self.data_path_layout.run_number_ledit,
             int, QIntValidator(0, 1000, self))

        #self._data_model_pm.bind_value_update('compression',
        #     self.data_path_layout.compression_cbox, bool, None)

    def _browse_clicked(self):
        """
        Descript. :
        """
        file_dialog = QFileDialog(self)
        file_dialog.setNameFilter("%s*" % self._base_image_dir)

        selected_dir = str(file_dialog.getExistingDirectory(\
            self, "Select a directory", self._base_image_dir))
        selecte_dir = os.path.dirname(selected_dir)

        if selected_dir is not None and len(selected_dir) > 0:
            self.set_directory(selected_dir)

    def _prefix_ledit_change(self, new_value):
        """
        Descript. :
        """
        cursor_pos = self.data_path_layout.prefix_ledit.cursorPosition()

        if len(new_value) > 0:
            available_chars = string.ascii_lowercase + string.ascii_uppercase + \
                              string.digits + "-_"
            if self.enable_macros:
                available_chars += "%"
            new_value = ''.join(i for i in str(new_value) if i in available_chars)

        if len(new_value) > 50:
            logging.getLogger("GUI").\
                error("Current prefix is to long (max 50 characters are allowed)")
            new_value = new_value[:-1]

        self.data_path_layout.prefix_ledit.setText(new_value)
        self.data_path_layout.prefix_ledit.setCursorPosition(cursor_pos)

        self._data_model.base_prefix = str(new_value)
#.........这里部分代码省略.........
开发者ID:MartinSavko,项目名称:mxcube,代码行数:103,代码来源:Qt4_data_path_widget.py

示例7: ProcessingWidget

# 需要导入模块: from widgets.Qt4_widget_utils import DataModelInputBinder [as 别名]
# 或者: from widgets.Qt4_widget_utils.DataModelInputBinder import bind_value_update [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: AcquisitionWidget

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

#.........这里部分代码省略.........
            self.acq_widget_layout.kappa_ledit.setText("%.2f" % float(new_value))
            #self._acquisition_parameters.kappa = float(new_value)

    def update_kappa_phi(self, new_value):
        if self.enable_parameter_update:
            self.acq_widget_layout.kappa_phi_ledit.setText("%.2f" % float(new_value))
            #self._acquisition_parameters.kappa_phi = float(new_value)

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

    def use_kappa(self, state):
        self.acq_widget_layout.kappa_label.setEnabled(state)
        self.acq_widget_layout.kappa_ledit.setEnabled(state)

    def use_kappa_phi(self, state):
        self.acq_widget_layout.kappa_phi_label.setEnabled(state)
        self.acq_widget_layout.kappa_phi_ledit.setEnabled(state)
            
    def set_beamline_setup(self, beamline_setup):
        """
        Descript. :
        """
        self._beamline_setup_hwobj = beamline_setup
        limits_dict = self._beamline_setup_hwobj.get_acquisition_limit_values()

        if 'osc_range' in limits_dict:
            limits = tuple(map(float, limits_dict['osc_range'].split(',')))
            (lower, upper) = limits
            self.osc_start_validator.setRange(lower, upper, 4)
            self.osc_range_validator.setRange(lower, upper, 4)

        self._acquisition_mib.bind_value_update('osc_start', 
                                                self.acq_widget_layout.osc_start_ledit,
                                                float, 
                                                self.osc_start_validator)

        self._acquisition_mib.bind_value_update('osc_range', 
                                                self.acq_widget_layout.osc_range_ledit,
                                                float, 
                                                self.osc_range_validator)

        if self.acq_widget_layout.findChild(QtGui.QLineEdit, "kappa_ledit"):
            if 'kappa' in limits_dict:
                limits = tuple(map(float, limits_dict['kappa'].split(',')))
                (lower, upper) = limits
                self.kappa_validator.setRange(lower, upper, 4)
            self._acquisition_mib.bind_value_update('kappa', 
                 self.acq_widget_layout.kappa_ledit, float, self.kappa_validator)

        if self.acq_widget_layout.findChild(QtGui.QLineEdit, "kappa_phi_ledit"):
            if 'kappa_phi' in limits_dict:
                limits = tuple(map(float, limits_dict['kappa_phi'].split(',')))
                (lower, upper) = limits
                self.kappa_phi_validator.setRange(lower, upper, 4)
            self._acquisition_mib.bind_value_update('kappa_phi',     
                 self.acq_widget_layout.kappa_phi_ledit, float, self.kappa_phi_validator)

        if 'exposure_time' in limits_dict:
            limits = tuple(map(float, limits_dict['exposure_time'].split(',')))
            (lower, upper) = limits
            self.exp_time_valdidator.setRange(lower, upper, 5)
        
        self._acquisition_mib.bind_value_update('exp_time', 
                                                self.acq_widget_layout.exp_time_ledit,
开发者ID:douglasbeniz,项目名称:mxcube,代码行数:70,代码来源:Qt4_acquisition_widget.py

示例9: ProcessingWidget

# 需要导入模块: from widgets.Qt4_widget_utils import DataModelInputBinder [as 别名]
# 或者: from widgets.Qt4_widget_utils.DataModelInputBinder import bind_value_update [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

示例10: AcquisitionStillWidget

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

#.........这里部分代码省略.........
        self.transmission_validator = QDoubleValidator(\
             0, 100, 3, self.acq_widget_layout.transmission_ledit)
        self.exp_time_validator = QDoubleValidator(\
             0.0001, 10000, 7, self.acq_widget_layout.exp_time_ledit)
        self.num_triggers_validator = QIntValidator(\
             1, 9999999, self.acq_widget_layout.num_triggers_ledit)
        self.num_images_per_trigger_validator = QIntValidator(\
             1, 9999999, self.acq_widget_layout.num_images_per_trigger_ledit)
        self.num_img_validator = QIntValidator(\
             1, 9999999, self.acq_widget_layout.num_images_ledit) 
        self.acq_widget_layout.detector_roi_mode_label.setEnabled(False)
        self.acq_widget_layout.detector_roi_mode_combo.setEnabled(False)

    def use_osc_start(self, status):
        pass

    def use_max_osc_range(self, status):
        pass

    def use_kappa(self, status):
        pass

    def set_beamline_setup(self, beamline_setup):
        self._beamline_setup_hwobj = beamline_setup
        limits_dict = self._beamline_setup_hwobj.get_acquisition_limit_values()
        self._diffractometer_hwobj = self._beamline_setup_hwobj.diffractometer_hwobj
 
        
        if 'exposure_time' in limits_dict:
            limits = tuple(map(float, limits_dict['exposure_time'].split(',')))
            (lower, upper) = limits
            self.exp_time_validator.setRange(lower, upper, 6)
        
        self._acquisition_mib.bind_value_update('exp_time', 
                                                self.acq_widget_layout.exp_time_ledit,
                                                float, 
                                                self.exp_time_validator)

        self._acquisition_mib.bind_value_update('num_triggers',
                                                self.acq_widget_layout.num_triggers_ledit,
                                                int,
                                                self.num_triggers_validator)

        self._acquisition_mib.bind_value_update('num_images_per_trigger',
                                                self.acq_widget_layout.num_images_per_trigger_ledit,
                                                int,
                                                self.num_images_per_trigger_validator)

        if 'number_of_images' in limits_dict:
            limits = tuple(map(float, limits_dict['number_of_images'].split(',')))
            (lower, upper) = limits
            self.num_img_validator.setRange(lower, upper)
        
        self._acquisition_mib.bind_value_update('num_images', 
                                                self.acq_widget_layout.num_images_ledit,
                                                int, 
                                                self.num_img_validator)

        self._acquisition_mib.\
             bind_value_update('energy',
                               self.acq_widget_layout.energy_ledit,
                               float,
                               self.energy_validator)
        self.update_energy_limits((self.energy_validator.bottom(),
                                   self.energy_validator.top()))
开发者ID:vrey01,项目名称:mxcube,代码行数:69,代码来源:Qt4_acquisition_still_widget.py

示例11: CreateCharWidget

# 需要导入模块: from widgets.Qt4_widget_utils import DataModelInputBinder [as 别名]
# 或者: from widgets.Qt4_widget_utils.DataModelInputBinder import bind_value_update [as 别名]
class CreateCharWidget(CreateTaskBase):
    """
    Descript. :
    """

    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,
#.........这里部分代码省略.........
开发者ID:folf,项目名称:mxcube,代码行数:103,代码来源:Qt4_create_char_widget.py

示例12: DataPathWidget

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

    def __init__(self, parent = None, name = '', fl = 0, data_model = None, 
                 layout = None):
        QtGui.QWidget.__init__(self, parent, QtCore.Qt.WindowFlags(fl))
        if name is not None:
            self.setObjectName(name)

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

        # Internal variables --------------------------------------------------
        self._base_image_dir = None
        self._base_process_dir = None
        self.path_conflict_state = False
        
        if data_model is None:
            self._data_model = queue_model_objects.PathTemplate()
        else:
            self._data_model = data_model
        
        self._data_model_pm = DataModelInputBinder(self._data_model)

        # Graphic elements ----------------------------------------------------
        if layout == "vertical":
            self.data_path_layout = uic.loadUi(os.path.join(os.path.dirname(__file__),
                                "ui_files/Qt4_data_path_widget_vertical_layout.ui"))
        else:
            self.data_path_layout = uic.loadUi(os.path.join(os.path.dirname(__file__),
                                "ui_files/Qt4_data_path_widget_horizontal_layout.ui"))

        # Layout --------------------------------------------------------------
        self.main_layout = QtGui.QVBoxLayout(self)
        self.main_layout.addWidget(self.data_path_layout)
        self.main_layout.setSpacing(0)
        self.main_layout.setContentsMargins(0, 0, 0, 0)
        self.setLayout(self.main_layout)

        # Qt signal/slot connections ------------------------------------------ 
        self.data_path_layout.prefix_ledit.textChanged.connect(self._prefix_ledit_change)
        self.data_path_layout.run_number_ledit.textChanged.connect(self._run_number_ledit_change)
        self.data_path_layout.browse_button.clicked.connect(self._browse_clicked)
        self.data_path_layout.folder_ledit.textChanged.connect(self._folder_ledit_change)

        # Other ---------------------------------------------------------------
        self._data_model_pm.bind_value_update('base_prefix', 
             self.data_path_layout.prefix_ledit, str, None)
        
        self._data_model_pm.bind_value_update('run_number', 
             self.data_path_layout.run_number_ledit,
             int, QtGui.QIntValidator(0, 1000, self))

    def _browse_clicked(self):
        """
        Descript. :
        """
        get_dir = QtGui.QFileDialog(self)
        given_dir = self._base_image_dir

        d = str(get_dir.getExistingDirectory(self, given_dir,
                                             "Select a directory", 
                                             QtGui.QFileDialog.ShowDirsOnly))
        d = os.path.dirname(d)

        if d is not None and len(d) > 0:
            self.set_directory(d)

    def _prefix_ledit_change(self, new_value):
        """
        Descript. :
        """
        if len(new_value) > 0:
            available_chars = string.ascii_lowercase + string.ascii_uppercase + \
                              string.digits + "-_"
            new_value = ''.join(i for i in str(new_value) if i in available_chars)
        self.data_path_layout.prefix_ledit.setText(new_value)

        self._data_model.base_prefix = str(new_value)
        """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)"""
        
        self.update_file_name()
        self.emit(QtCore.SIGNAL('pathTemplateChanged'),
                  self.data_path_layout.prefix_ledit,
                  new_value)

    def _run_number_ledit_change(self, new_value):
        """
        Descript. :
        """
        if str(new_value).isdigit():
            self.set_run_number(new_value)

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

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


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