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


Python DataPathWidget.update_data_model方法代码示例

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


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

示例1: DCParametersWidget

# 需要导入模块: from widgets.Qt4_data_path_widget import DataPathWidget [as 别名]
# 或者: from widgets.Qt4_data_path_widget.DataPathWidget import update_data_model [as 别名]

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

    def _prefix_ledit_change(self, new_value):
        prefix = self._data_collection.acquisitions[0].\
                 path_template.get_prefix()
        self._data_collection.set_name(prefix)
        self._tree_view_item.setText(0, self._data_collection.get_name())

    def _run_number_ledit_change(self, new_value):
        if str(new_value).isdigit():
            self._data_collection.set_number(int(new_value))
            self._tree_view_item.setText(0, self._data_collection.get_name())

    def acq_parameters_changed(self):
        if self._tree_view_item is None:
            #TODO fix this
            return 
        dc_tree_widget = self._tree_view_item.listView().parent()
        dc_tree_widget.check_for_path_collisions()
        path_template = self._data_collection.acquisitions[0].path_template
        path_conflict = self.queue_model_hwobj.\
                        check_for_path_collisions(path_template)
        if new_value != '':
            if path_conflict:
                logging.getLogger("user_level_log").\
                    error('The current path settings will overwrite data' +\
                          ' from another task. Correct the problem before collecting')

                widget.setPaletteBackgroundColor(widget_colors.LIGHT_RED)
            else:
                widget.setPaletteBackgroundColor(widget_colors.WHITE)

    def __add_data_collection(self):
        return self.add_dc_cb(self._data_collection, self.collection_type)
    
    def mad_energy_selected(self, name, energy, state):
        path_template = self._data_collection.acquisitions[0].path_template

        if state:
            path_template.mad_prefix = name
        else:
            path_template.mad_prefix = ''

        run_number = self._beamline_setup_hwobj.queue_model_hwobj.\
          get_next_run_number(path_template)

        self._data_path_widget.set_run_number(run_number)
        self._data_path_widget.set_prefix(path_template.base_prefix)
        model = self._tree_view_item.get_model()
        model.set_name(path_template.get_prefix())
        self._tree_view_item.setText(0, model.get_name())
        
    def tab_changed(self):
        if self._tree_view_item:
            self.populate_parameter_widget(self._tree_view_item)

    def set_enabled(self, state):
        self._acq_widget.setEnabled(state)
        self._data_path_widget.setEnabled(state)
        self._processing_widget.setEnabled(state)

    def populate_widget(self, item):
        data_collection = item.get_model()
        self._tree_view_item = item
        self._data_collection = data_collection
        self._acquisition_mib = DataModelInputBinder(self._data_collection.\
                                                         acquisitions[0].acquisition_parameters)

        # The acq_widget sends a signal to the path_widget, and it relies
        # on that both models upto date, we need to refactor this part
        # so that both models are set before taking ceratin actions.
        # This workaround, works for the time beeing.
        self._data_path_widget._data_model = data_collection.acquisitions[0].path_template

        self._acq_widget.set_energies(data_collection.crystal.energy_scan_result)
        self._acq_widget.update_data_model(data_collection.acquisitions[0].\
                                          acquisition_parameters,
                                          data_collection.acquisitions[0].\
                                          path_template)
        self._data_path_widget.update_data_model(data_collection.\
                                           acquisitions[0].path_template)
        
        self._processing_widget.update_data_model(data_collection.\
                                                 processing_parameters)

        if data_collection.acquisitions[0].acquisition_parameters.\
                centred_position.snapshot_image:
            image = 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))

        invalid = self._acquisition_mib.validate_all()

        if invalid:
            msg = "This data collection has one or more incorrect parameters,"+\
                " correct the fields marked in red to solve the problem."

            logging.getLogger("user_level_log").\
                warning(msg)
开发者ID:hzb-mx,项目名称:mxcube,代码行数:104,代码来源:Qt4_dc_parameters_widget.py

示例2: XRFScanParametersWidget

# 需要导入模块: from widgets.Qt4_data_path_widget import DataPathWidget [as 别名]
# 或者: from widgets.Qt4_data_path_widget.DataPathWidget import update_data_model [as 别名]

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

        _parameters_widget_layout = QtGui.QVBoxLayout(_parameters_widget)
        _parameters_widget_layout.addWidget(self.data_path_widget)
        _parameters_widget_layout.addWidget(self.other_parameters_gbox)
        _parameters_widget_layout.addStretch(0)
        _parameters_widget_layout.setSpacing(2)
        _parameters_widget_layout.setContentsMargins(0, 0, 0, 0)

        _snapshots_vlayout = QtGui.QVBoxLayout(_snapshot_widget)
        _snapshots_vlayout.addWidget(self.position_widget)
        _snapshots_vlayout.setContentsMargins(0, 0, 0, 0)
        _snapshots_vlayout.setSpacing(2)
        _snapshots_vlayout.addStretch(0)

        _top_widget_layout = QtGui.QHBoxLayout(_top_widget)
        _top_widget_layout.addWidget(_parameters_widget)
        _top_widget_layout.addWidget(_snapshot_widget)
        _top_widget_layout.setSpacing(2)
        _top_widget_layout.setContentsMargins(0, 0, 0, 0)
        
        _main_vlayout = QtGui.QVBoxLayout(self)
        _main_vlayout.addWidget(_top_widget)
        _main_vlayout.addWidget(self.mca_spectrum_widget)
        _main_vlayout.setSpacing(2)
        _main_vlayout.setContentsMargins(0, 0, 0, 0)
       
        # SizePolicies -------------------------------------------------------
        self.position_widget.setFixedSize(457, 350)
        self.mca_spectrum_widget.setSizePolicy(QtGui.QSizePolicy.Expanding,
                                               QtGui.QSizePolicy.Expanding)
        _top_widget.setSizePolicy(QtGui.QSizePolicy.Expanding,
                                  QtGui.QSizePolicy.Fixed)

        # Qt signal/slot connections ------------------------------------------ 
        self.data_path_widget.data_path_layout.prefix_ledit.\
             textChanged.connect(self._prefix_ledit_change)

        self.data_path_widget.data_path_layout.run_number_ledit.\
             textChanged.connect(self._run_number_ledit_change)

        self.count_time_ledit.textChanged.connect(self._count_time_ledit_change)
        
        # Other ---------------------------------------------------------------
        Qt4_widget_colors.set_widget_color(self.other_parameters_gbox,
                                           Qt4_widget_colors.GROUP_BOX_GRAY)
        Qt4_widget_colors.set_widget_color(self.data_path_widget,
                                           Qt4_widget_colors.GROUP_BOX_GRAY) 
        Qt4_widget_colors.set_widget_color(self.position_widget, 
                                           Qt4_widget_colors.GROUP_BOX_GRAY)

    def _prefix_ledit_change(self, new_value):
        self.xrf_scan_model.set_name(str(new_value))
        self._tree_view_item.setText(0, self.xrf_scan_model.get_display_name())

    def _run_number_ledit_change(self, new_value):
        if str(new_value).isdigit():
            self.xrf_scan_model.set_number(int(new_value))
            self._tree_view_item.setText(0, self.xrf_scan_model.get_display_name())

    def _count_time_ledit_change(self, new_value):
        if str(new_value).isdigit():
            self.xrf_scan_model.set_count_time(float(new_value))
        
    def tab_changed(self):
        if self._tree_view_item:
            self.populate_widget(self._tree_view_item)

    def populate_widget(self, item):
        self._tree_view_item = item
        self.xrf_scan_model = item.get_model()
        executed = self.xrf_scan_model.is_executed()

        self.data_path_widget.setEnabled(not executed)
        self.other_parameters_gbox.setEnabled(not executed)    
        self.mca_spectrum_widget.setEnabled(executed)        
 
        if executed:
            result = self.xrf_scan_model.get_scan_result()
            self.mca_spectrum_widget.setData(result.mca_data, result.mca_calib, result.mca_config) 
        else:
            self.mca_spectrum_widget.clear()
        
        self.data_path_widget.update_data_model(self.xrf_scan_model.path_template)  
        self.count_time_ledit.setText(str(self.xrf_scan_model.count_time)) 

        image = self.xrf_scan_model.centred_position.snapshot_image
        if image is not None:
            try:
               image = image.scaled(427, 320, QtCore.Qt.KeepAspectRatio)
               self.position_widget.svideo.setPixmap(QtGui.QPixmap(image))
            except:
               pass

    def set_xrf_scan_hwobj(self, xrf_scan_hwobj):
        self.xrf_scan_hwobj = xrf_scan_hwobj
        if self.xrf_scan_hwobj:
            self.xrf_scan_hwobj.connect("xrfScanFinished", self.scan_finished)

    def scan_finished(self, mcaData, mcaCalib, mcaConfig):
        self.mca_spectrum_widget.setData(mcaData, mcaCalib, mcaConfig)
开发者ID:hzb-mx,项目名称:mxcube,代码行数:104,代码来源:Qt4_xrf_scan_parameters_widget.py

示例3: CreateXRFSpectrumWidget

# 需要导入模块: from widgets.Qt4_data_path_widget import DataPathWidget [as 别名]
# 或者: from widgets.Qt4_data_path_widget.DataPathWidget import update_data_model [as 别名]
class CreateXRFSpectrumWidget(CreateTaskBase):
    def __init__(self, parent = None, name = None, fl = 0):
        CreateTaskBase.__init__(self, parent, name, 
            QtCore.Qt.WindowFlags(fl), 'XRF spectrum')
 
        if name is not None:
            self.setObjectName(name)

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

        # Internal variables --------------------------------------------------
        self.count_time = None

        self.init_models()

        # Graphic elements ----------------------------------------------------
        self._data_path_widget = DataPathWidget(self, 
             data_model = self._path_template, layout = 'vertical')

        _parameters_gbox = QtGui.QGroupBox('Parameters', self)
        _count_time_label = QtGui.QLabel("Count time (sec.):", _parameters_gbox)
        self.count_time_ledit = QtGui.QLineEdit("1", _parameters_gbox)
        #self.count_time_ledit.setMaximumWidth(75)
        self.adjust_transmission_cbox = QtGui.QCheckBox(\
             "Adjust transmission", _parameters_gbox)
        self.adjust_transmission_cbox.setChecked(True)
        

        # Layout --------------------------------------------------------------
        _parameters_gbox_hlayout = QtGui.QHBoxLayout(_parameters_gbox)
        _parameters_gbox_hlayout.addWidget(_count_time_label)
        _parameters_gbox_hlayout.addWidget(self.count_time_ledit) 
        _parameters_gbox_hlayout.addWidget(self.adjust_transmission_cbox)
        _parameters_gbox_hlayout.addStretch(0)
        _parameters_gbox_hlayout.setSpacing(2)
        _parameters_gbox_hlayout.setContentsMargins(0, 0, 0, 0)

        _main_vlayout = QtGui.QVBoxLayout(self)
        _main_vlayout.addWidget(self._data_path_widget)
        _main_vlayout.addWidget(_parameters_gbox)
        _main_vlayout.setSpacing(2)
        _main_vlayout.setContentsMargins(2, 2, 2, 2)
        _main_vlayout.addStretch(0)

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

        # Qt signal/slot connections ------------------------------------------
        self._data_path_widget.pathTemplateChangedSignal.\
             connect(self.acq_parameters_changed)
        self.adjust_transmission_cbox.stateChanged.connect(\
             self.adjust_transmission_state_changed)

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

    def init_models(self):
        CreateTaskBase.init_models(self)
        self.xrf_spectrum_model = queue_model_objects.XRFSpectrum()
        self._path_template.start_num = 1
        self._path_template.num_files = 1
        self._path_template.suffix = 'raw'

    def single_item_selection(self, tree_item):
        CreateTaskBase.single_item_selection(self, tree_item)
        self.xrf_spectrum_model = tree_item.get_model()

        if isinstance(tree_item, Qt4_queue_item.XRFSpectrumQueueItem):
            if self.xrf_spectrum_model.is_executed():
                self.setDisabled(True)
            else:
                self.setDisabled(False)    

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

            self._data_path_widget.update_data_model(self._path_template)
        elif not(isinstance(tree_item, Qt4_queue_item.SampleQueueItem) or \
                 isinstance(tree_item, Qt4_queue_item.DataCollectionGroupQueueItem)):
            self.setDisabled(True)

    def approve_creation(self):
        base_result = CreateTaskBase.approve_creation(self)

        self.count_time = None

        try:
           self.count_time = float(str(self.count_time_ledit.text()))
        except:
           logging.getLogger("GUI").\
                error("Incorrect count time value.")

        return base_result and self.count_time


    # Called by the owning widget (task_toolbox_widget) to create
    # a collection. When a data collection group is selected.
    def _create_task(self, sample, shape):
        data_collections = []

        if self.count_time is not None:
            if not shape:
#.........这里部分代码省略.........
开发者ID:milanprica,项目名称:mxcube,代码行数:103,代码来源:Qt4_create_xrf_spectrum_widget.py

示例4: EnergyScanParametersWidget

# 需要导入模块: from widgets.Qt4_data_path_widget import DataPathWidget [as 别名]
# 或者: from widgets.Qt4_data_path_widget.DataPathWidget import update_data_model [as 别名]

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

        # Qt signal/slot connections ------------------------------------------
        # qt.QObject.connect(self.periodic_table_widget, qt.PYSIGNAL('edgeSelected'),
        #                   self.element_clicked)

        self.data_path_widget.data_path_layout.prefix_ledit.textChanged.connect(self._prefix_ledit_change)

        self.data_path_widget.data_path_layout.run_number_ledit.textChanged.connect(self._run_number_ledit_change)

        # qt.QObject.connect(qt.qApp, qt.PYSIGNAL('tab_changed'),
        #                   self.tab_changed)

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

        Qt4_widget_colors.set_widget_color(self.periodic_table_widget, Qt4_widget_colors.GROUP_BOX_GRAY)
        Qt4_widget_colors.set_widget_color(self.position_widget, Qt4_widget_colors.GROUP_BOX_GRAY)
        Qt4_widget_colors.set_widget_color(self.data_path_widget, Qt4_widget_colors.GROUP_BOX_GRAY)

    def _prefix_ledit_change(self, new_value):
        self.energy_scan_model.set_name(str(new_value))
        self._tree_view_item.setText(0, self.energy_scan_model.get_name())

    def _run_number_ledit_change(self, new_value):
        if str(new_value).isdigit():
            self.energy_scan_model.set_number(int(new_value))
            self._tree_view_item.setText(0, self.energy_scan_model.get_name())

    def tab_changed(self):
        if self._tree_view_item:
            self.populate_widget(self._tree_view_item)

    def populate_widget(self, item):
        self._tree_view_item = item
        self.energy_scan_model = item.get_model()
        executed = self.energy_scan_model.is_executed()

        self.data_path_widget.setEnabled(not executed)
        self.periodic_table_widget.setEnabled(not executed)
        self.scan_plot_widget.setEnabled(not executed)
        self.result_plot_widget.setEnabled(not executed)

        if executed:
            result = self.energy_scan_model.get_scan_result()
            self.scan_plot_widget.plot_scan_curve(result.data)
            self.result_plot_widget.plot_results(
                result.pk,
                result.fppPeak,
                result.fpPeak,
                result.ip,
                result.fppInfl,
                result.fpInfl,
                result.rm,
                result.chooch_graph_x,
                result.chooch_graph_y1,
                result.chooch_graph_y2,
                result.title,
            )
        else:
            self.scan_plot_widget.clear()
            self.result_plot_widget.clear()

        self.data_path_widget.update_data_model(self.energy_scan_model.path_template)
        self.periodic_table_widget.set_current_element_edge(
            self.energy_scan_model.element_symbol, self.energy_scan_model.edge
        )

        image = self.energy_scan_model.centred_position.snapshot_image
        if image is not None:
            try:
                image = image.scaled(427, 320, QtCore.Qt.KeepAspectRatio)
                self.position_widget.svideo.setPixmap(QtGui.QPixmap(image))
            except:
                pass

    def element_clicked(self, symbol, energy):
        self.energy_scan_model.element_symbol = symbol
        self.energy_scan_model.edge = energy

    def set_enegy_scan_hwobj(self, energy_scan_hwobj):
        self.energy_scan_hwobj = energy_scan_hwobj
        if self.energy_scan_hwobj:
            self.energy_scan_hwobj.connect("scanStart", self.scan_started)
            self.energy_scan_hwobj.connect("scanNewPoint", self.scan_new_point)
            self.energy_scan_hwobj.connect("choochFinished", self.chooch_finished)

    def scan_started(self, scan_parameters):
        self.scan_plot_widget.start_new_scan(scan_parameters)
        self.data_path_widget.setEnabled(False)
        self.periodic_table_widget.setEnabled(False)

    def scan_new_point(self, x, y):
        self.scan_plot_widget.add_new_plot_value(x, y)

    def chooch_finished(
        self, pk, fppPeak, fpPeak, ip, fppInfl, fpInfl, rm, chooch_graph_x, chooch_graph_y1, chooch_graph_y2, title
    ):
        self.result_plot_widget.plot_results(
            pk, fppPeak, fpPeak, ip, fppInfl, fpInfl, rm, chooch_graph_x, chooch_graph_y1, chooch_graph_y2, title
        )
        self.scan_plot_widget.plot_finished()
开发者ID:folf,项目名称:mxcube,代码行数:104,代码来源:Qt4_energy_scan_parameters_widget.py

示例5: CreateXrayImagingWidget

# 需要导入模块: from widgets.Qt4_data_path_widget import DataPathWidget [as 别名]
# 或者: from widgets.Qt4_data_path_widget.DataPathWidget import update_data_model [as 别名]

#.........这里部分代码省略.........
             connect(self.path_template_changed)

        # Other ---------------------------------------------------------------
        self._acq_widget.use_osc_start(False)
        self._acq_widget.use_kappa(False)
        self._acq_widget.acq_widget_layout.max_osc_range_cbx.setVisible(False)
        self._acq_widget.acq_widget_layout.first_image_label.setVisible(False)
        self._acq_widget.acq_widget_layout.first_image_ledit.setVisible(False)
        self._acq_widget.acq_widget_layout.detector_roi_mode_label.setVisible(False)
        self._acq_widget.acq_widget_layout.detector_roi_mode_combo.setVisible(False)
        self._acq_widget.acq_widget_layout.energies_combo.setVisible(False)
        self._acq_widget.acq_widget_layout.mad_cbox.setVisible(False)
        self._acq_widget.acq_widget_layout.energy_label.setVisible(False)
        self._acq_widget.acq_widget_layout.energy_ledit.setVisible(False)
        self._acq_widget.acq_widget_layout.transmission_label.setVisible(False)
        self._acq_widget.acq_widget_layout.transmission_ledit.setVisible(False)
        self._acq_widget.acq_widget_layout.resolution_label.setVisible(False)
        self._acq_widget.acq_widget_layout.resolution_ledit.setVisible(False)
        self._acq_widget.acq_widget_layout.kappa_label.setVisible(False)
        self._acq_widget.acq_widget_layout.kappa_ledit.setVisible(False)
        self._acq_widget.acq_widget_layout.kappa_phi_label.setVisible(False)
        self._acq_widget.acq_widget_layout.kappa_phi_ledit.setVisible(False)
        self._acq_widget.acq_widget_layout.shutterless_cbx.setVisible(False)

    def enable_compression(self, state):
        CreateTaskBase.enable_compression(self, False)

    def init_models(self):
        """
        Descript. :
        """
        CreateTaskBase.init_models(self)

        self._xray_imaging_parameters = queue_model_objects.XrayImagingParameters()

        if self._beamline_setup_hwobj is not None:
            self._acquisition_parameters = self._beamline_setup_hwobj.\
                get_default_acquisition_parameters("default_imaging_values")
            self._path_template.suffix = 'tiff'

    def set_beamline_setup(self, bl_setup_hwobj):
        """
        In plate mode osciallation is start is in the middle of grid
        """
        CreateTaskBase.set_beamline_setup(self, bl_setup_hwobj)
        #self._xray_imaging_parameters_widget.set_beamline_setup(bl_setup_hwobj)

    def single_item_selection(self, tree_item):
        """
        Descript. :
        """
        CreateTaskBase.single_item_selection(self, tree_item)
        self.setDisabled(True)

        if isinstance(tree_item, Qt4_queue_item.SampleQueueItem):
            self.setDisabled(False)
        elif isinstance(tree_item, Qt4_queue_item.BasketQueueItem):
            self.setDisabled(False)
        elif isinstance(tree_item, Qt4_queue_item.XrayImagingQueueItem):
            data_model= tree_item.get_model()

            self._path_template = data_model.get_path_template()
            self._data_path_widget.update_data_model(self._path_template)

            self._acquisition_parameters = data_model.acquisition.acquisition_parameters
            self._acq_widget.update_data_model(self._acquisition_parameters,
                                               self._path_template)

            self._xray_imaging_parameters = data_model.xray_imaging_parameters
            self._xray_imaging_parameters_widget.update_data_model(data_model)
    

            self.setDisabled(False)

    # Called by the owning widget (task_toolbox_widget) to create
    # a collection. When a data collection group is selected.
    def _create_task(self, sample, shape):
        """
        Descript. :
        """
        if isinstance(shape, GraphicsItemPoint):
            snapshot = self._graphics_manager_hwobj.get_scene_snapshot(shape)
            cpos = copy.deepcopy(shape.get_centred_position())
            cpos.snapshot_image = snapshot
        else:
            cpos = queue_model_objects.CentredPosition()
            cpos.snapshot_image = self._graphics_manager_hwobj.get_scene_snapshot()

        #self._path_template.run_number += 1

        acq = self._create_acq(sample)
        acq.acquisition_parameters.centred_position = cpos
        dc = queue_model_objects.XrayImaging(self._xray_imaging_parameters.copy(),
                                             acq,
                                             sample.crystals[0])
        dc.set_name(acq.path_template.get_prefix())
        dc.set_number(acq.path_template.run_number)
        dc.experiment_type = queue_model_enumerables.EXPERIMENT_TYPE.IMAGING

        return [dc]
开发者ID:vrey01,项目名称:mxcube,代码行数:104,代码来源:Qt4_create_xray_imaging_widget.py

示例6: CreateAdvancedWidget

# 需要导入模块: from widgets.Qt4_data_path_widget import DataPathWidget [as 别名]
# 或者: from widgets.Qt4_data_path_widget.DataPathWidget import update_data_model [as 别名]

#.........这里部分代码省略.........
        return result
            
    def update_processing_parameters(self, crystal):
        """
        Descript. :
        """
        return

    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._acq_widget.update_data_model(self._acquisition_parameters,
            #                                    self._path_template)            
            pass
        elif isinstance(tree_item, Qt4_queue_item.BasketQueueItem):
            self.setDisabled(False)
        elif isinstance(tree_item, Qt4_queue_item.DataCollectionQueueItem):
            data_collection = tree_item.get_model()
            if tree_item.get_model().is_executed():
                self.setDisabled(True)
            else:
                self.setDisabled(False)

            # sample_data_model = self.get_sample_item(tree_item).get_model()
            #self._acq_widget.disable_inverse_beam(True)
            #self._graphics_manager_hwobj.de_select_all()
            self._graphics_manager_hwobj.select_shape(data_collection.grid)

            self._path_template = data_collection.get_path_template()
            self._data_path_widget.update_data_model(self._path_template)

            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)
        else:
            self.setDisabled(True)
        self.grid_treewidget_item_selection_changed()
  
    def _create_task(self,  sample, shape):
        """Creates tasks based on selected grids

        :param sample: selected sample object
        :type sample: SampleQueueItem
        :param shape: selected shape
        :type shape: Qt4_GraphicsLib.GraphicsItem
        """
        tasks = []
        selected_grids = self.get_selected_grids() 

        if len(selected_grids) == 0:
            selected_grids.append(self._graphics_manager_hwobj.\
                update_auto_grid()) 

        for grid in selected_grids:
            grid.set_snapshot(self._graphics_manager_hwobj.\
                  get_scene_snapshot(grid))

            grid_properties = grid.get_properties()

            acq = self._create_acq(sample)
开发者ID:,项目名称:,代码行数:70,代码来源:

示例7: CreateXRFScanWidget

# 需要导入模块: from widgets.Qt4_data_path_widget import DataPathWidget [as 别名]
# 或者: from widgets.Qt4_data_path_widget.DataPathWidget import update_data_model [as 别名]
class CreateXRFScanWidget(CreateTaskBase):
    def __init__(self, parent=None, name=None, fl=0):
        CreateTaskBase.__init__(self, parent, name, QtCore.Qt.WindowFlags(fl), "XRF-scan")

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

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

        # Internal variables --------------------------------------------------
        self.count_time = None

        self.init_models()

        # Graphic elements ----------------------------------------------------
        self._data_path_gbox = QtGui.QGroupBox("Data location", self)
        self._data_path_widget = DataPathWidget(self._data_path_gbox, data_model=self._path_template, layout="vertical")

        _parameters_gbox = QtGui.QGroupBox("Parameters", self)
        _count_time_label = QtGui.QLabel("Count time (sec.):", _parameters_gbox)
        self.count_time_ledit = QtGui.QLineEdit("1", _parameters_gbox)
        self.count_time_ledit.setMaximumWidth(75)

        # Layout --------------------------------------------------------------
        self._data_path_gbox_vlayout = QtGui.QVBoxLayout(self)
        self._data_path_gbox_vlayout.addWidget(self._data_path_widget)
        self._data_path_gbox_vlayout.setSpacing(0)
        self._data_path_gbox_vlayout.setContentsMargins(0, 0, 0, 0)
        self._data_path_gbox.setLayout(self._data_path_gbox_vlayout)

        _parameters_gbox_hlayout = QtGui.QHBoxLayout(self)
        _parameters_gbox_hlayout.addWidget(_count_time_label)
        _parameters_gbox_hlayout.addWidget(self.count_time_ledit)
        _parameters_gbox_hlayout.addStretch(0)
        _parameters_gbox_hlayout.setSpacing(2)
        _parameters_gbox_hlayout.setContentsMargins(0, 0, 0, 0)
        _parameters_gbox.setLayout(_parameters_gbox_hlayout)

        _main_vlayout = QtGui.QVBoxLayout(self)
        _main_vlayout.addWidget(self._data_path_gbox)
        _main_vlayout.addWidget(_parameters_gbox)
        _main_vlayout.setSpacing(2)
        _main_vlayout.setContentsMargins(2, 2, 2, 2)
        _main_vlayout.addStretch(0)
        self.setLayout(_main_vlayout)

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

        # Qt signal/slot connections ------------------------------------------
        self._data_path_widget.data_path_layout.run_number_ledit.textChanged.connect(self._run_number_ledit_change)

        self.connect(self._data_path_widget, QtCore.SIGNAL("pathTemplateChanged"), self.handle_path_conflict)

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

    def init_models(self):
        CreateTaskBase.init_models(self)
        self.enery_scan = queue_model_objects.XRFScan()
        self._path_template.start_num = 1
        self._path_template.num_files = 1
        self._path_template.suffix = "raw"

    def single_item_selection(self, tree_item):
        CreateTaskBase.single_item_selection(self, tree_item)
        escan_model = tree_item.get_model()

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

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

            self._data_path_widget.update_data_model(self._path_template)
        elif not (
            isinstance(tree_item, Qt4_queue_item.SampleQueueItem)
            or isinstance(tree_item, Qt4_queue_item.DataCollectionGroupQueueItem)
        ):
            self.setDisabled(True)

    def approve_creation(self):
        base_result = CreateTaskBase.approve_creation(self)

        self.count_time = None

        try:
            self.count_time = float(str(self.count_time_ledit.text()))
        except:
            logging.getLogger("user_level_log").info("Incorrect count time value.")

        return base_result and self.count_time

    # Called by the owning widget (task_toolbox_widget) to create
    # a collection. When a data collection group is selected.
    def _create_task(self, sample, shape):
        data_collections = []

        if self.count_time is not None:
#.........这里部分代码省略.........
开发者ID:folf,项目名称:mxcube,代码行数:103,代码来源:Qt4_create_xrf_scan_widget.py

示例8: CreateAdvancedWidget

# 需要导入模块: from widgets.Qt4_data_path_widget import DataPathWidget [as 别名]
# 或者: from widgets.Qt4_data_path_widget.DataPathWidget import update_data_model [as 别名]

#.........这里部分代码省略.........
            self._acquisition_parameters.resolution = resolution
            self._acquisition_parameters.energy = energy
            self._acquisition_parameters.transmission = transmission

            self.grid_treewidget_item_selection_changed()
        else:
            self._acquisition_parameters = queue_model_objects.AcquisitionParameters()

    def approve_creation(self):
        """
        Descript. :
        """
        result = CreateTaskBase.approve_creation(self)

        if len(self._advanced_methods_widget.grid_treewidget.selectedItems()) == 0:
            msg = "No grid selected. Automatic grid will be used."
            logging.getLogger("user_level_log").info(msg)
        return result

    def update_processing_parameters(self, crystal):
        """
        Descript. :
        """
        return

    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._acq_widget.update_data_model(self._acquisition_parameters, self._path_template)
        elif isinstance(tree_item, Qt4_queue_item.BasketQueueItem):
            self.setDisabled(False)
        elif isinstance(tree_item, Qt4_queue_item.AdvancedQueueItem):
            advanced = tree_item.get_model()
            if tree_item.get_model().is_executed():
                self.setDisabled(True)
            else:
                self.setDisabled(False)

            # sample_data_model = self.get_sample_item(tree_item).get_model()
            # self._acq_widget.disable_inverse_beam(True)

            self._path_template = advanced.get_path_template()
            self._data_path_widget.update_data_model(self._path_template)

            data_collection = advanced.reference_image_collection

            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)
        else:
            self.setDisabled(True)
        # if self._advanced_methods_widget.grid_treewidget.count() > 0:
        #    self._advanced_methods_widget.grid_treewidget.clearSelection()

    def _create_task(self, sample, shape):
        """
        Descript. :
        """
        data_collections = []
        selected_grids = self.get_selected_grids()
开发者ID:JieNanMAXIV,项目名称:mxcube,代码行数:69,代码来源:Qt4_create_advanced_widget.py

示例9: XRFSpectrumParametersWidget

# 需要导入模块: from widgets.Qt4_data_path_widget import DataPathWidget [as 别名]
# 或者: from widgets.Qt4_data_path_widget.DataPathWidget import update_data_model [as 别名]

#.........这里部分代码省略.........
        self.mca_spectrum_widget = McaSpectrumWidget(self)
        self.snapshot_widget = SnapshotWidget(self)
 
        # Layout -------------------------------------------------------------
        _other_parameters_gbox_hlayout = QtGui.QHBoxLayout(self.other_parameters_gbox)
        _other_parameters_gbox_hlayout.addWidget(self.count_time_label)  
        _other_parameters_gbox_hlayout.addWidget(self.count_time_ledit)
        _other_parameters_gbox_hlayout.addWidget(self.adjust_transmission_cbox)
        _other_parameters_gbox_hlayout.addStretch(0)
        _other_parameters_gbox_hlayout.setSpacing(2)
        _other_parameters_gbox_hlayout.setContentsMargins(0, 0, 0, 0)

        _parameters_widget_layout = QtGui.QVBoxLayout(_parameters_widget)
        _parameters_widget_layout.addWidget(self.data_path_widget)
        _parameters_widget_layout.addWidget(self.other_parameters_gbox)
        _parameters_widget_layout.addStretch(0)
        _parameters_widget_layout.setSpacing(2)
        _parameters_widget_layout.setContentsMargins(0, 0, 0, 0)

        _top_widget_layout = QtGui.QHBoxLayout(_top_widget)
        _top_widget_layout.addWidget(_parameters_widget)
        _top_widget_layout.addWidget(self.snapshot_widget)
        _top_widget_layout.setSpacing(2)
        _top_widget_layout.addStretch(0)
        _top_widget_layout.setContentsMargins(0, 0, 0, 0)
        
        _main_vlayout = QtGui.QVBoxLayout(self)
        _main_vlayout.addWidget(_top_widget)
        _main_vlayout.addWidget(self.mca_spectrum_widget)
        _main_vlayout.setSpacing(2)
        _main_vlayout.setContentsMargins(0, 0, 0, 0)
       
        # SizePolicies -------------------------------------------------------
        self.mca_spectrum_widget.setSizePolicy(QtGui.QSizePolicy.Expanding,
                                               QtGui.QSizePolicy.Expanding)
        _top_widget.setSizePolicy(QtGui.QSizePolicy.Expanding,
                                  QtGui.QSizePolicy.Fixed)

        # Qt signal/slot connections ------------------------------------------ 
        self.data_path_widget.data_path_layout.prefix_ledit.textChanged.\
             connect(self._prefix_ledit_change)
        self.data_path_widget.data_path_layout.run_number_ledit.textChanged.\
             connect(self._run_number_ledit_change)
        self.count_time_ledit.textChanged.connect(\
             self._count_time_ledit_change)
        
        # Other ---------------------------------------------------------------


    def _prefix_ledit_change(self, new_value):
        self.xrf_spectrum_model.set_name(str(new_value))
        self._tree_view_item.setText(\
             0, self.xrf_spectrum_model.get_display_name())

    def _run_number_ledit_change(self, new_value):
        if str(new_value).isdigit():
            self.xrf_spectrum_model.set_number(int(new_value))
            self._tree_view_item.setText(\
                 0, self.xrf_spectrum_model.get_display_name())

    def _count_time_ledit_change(self, new_value):
        if str(new_value).isdigit():
            self.xrf_spectrum_model.set_count_time(float(new_value))
        
    def tab_changed(self):
        if self._tree_view_item:
            self.populate_widget(self._tree_view_item)

    def populate_widget(self, item):
        self._tree_view_item = item
        self.xrf_spectrum_model = item.get_model()
        executed = self.xrf_spectrum_model.is_executed()

        self.data_path_widget.setEnabled(not executed)
        self.other_parameters_gbox.setEnabled(not executed)    
        #self.mca_spectrum_widget.setEnabled(executed)        
 
        if executed:
            result = self.xrf_spectrum_model.get_spectrum_result()
            self.mca_spectrum_widget.set_data(result.mca_data, 
                 result.mca_calib, result.mca_config) 
        else:
            self.mca_spectrum_widget.clear()
        
        self.data_path_widget.update_data_model(\
             self.xrf_spectrum_model.path_template)  
        self.count_time_ledit.setText(\
             str(self.xrf_spectrum_model.count_time)) 

        image = self.xrf_spectrum_model.centred_position.snapshot_image
        self.snapshot_widget.display_snapshot(image, width=400)

    def set_xrf_spectrum_hwobj(self, xrf_spectrum_hwobj):
        if self.xrf_spectrum_hwobj is None:
            self.xrf_spectrum_hwobj = xrf_spectrum_hwobj
            self.xrf_spectrum_hwobj.connect("xrfSpectrumFinished",
                                            self.spectrum_finished)

    def spectrum_finished(self, mca_data, mca_calib, mca_config):
        self.mca_spectrum_widget.set_data(mca_data, mca_calib, mca_config)
开发者ID:,项目名称:,代码行数:104,代码来源:

示例10: CreateGphlWorkflowWidget

# 需要导入模块: from widgets.Qt4_data_path_widget import DataPathWidget [as 别名]
# 或者: from widgets.Qt4_data_path_widget.DataPathWidget import update_data_model [as 别名]

#.........这里部分代码省略.........
            self._gphl_acq_param_widget.hide()
        else:
            # acquisition type strategy
            self._gphl_acq_param_widget.populate_widget(
                beam_energies=beam_energies,
            )
            self._gphl_acq_widget.show()
            self._gphl_diffractcal_widget.hide()
            self._gphl_acq_param_widget.show()

        prefix = parameters.get('prefix')
        if prefix is not None:
            self.current_prefix = prefix

    def data_acquired(self):
        """Data gathered from popup, continue execution"""
        pass

    def single_item_selection(self, tree_item):
        CreateTaskBase.single_item_selection(self, tree_item)
        wf_model = tree_item.get_model()

        if not isinstance(tree_item, queue_item.SampleQueueItem):

            if isinstance(tree_item, queue_item.GphlWorkflowQueueItem):
                if tree_item.get_model().is_executed():
                    self.setDisabled(True)
                else:
                    self.setDisabled(False)

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

                self._data_path_widget.update_data_model(self._path_template)

            elif isinstance(tree_item, queue_item.BasketQueueItem):
                self.setDisabled(False)
            elif not isinstance(tree_item, queue_item.DataCollectionGroupQueueItem):
                self.setDisabled(True)

    def init_models(self):
        CreateTaskBase.init_models(self)
        self._init_models()

    def _init_models(self):
        pass

    def continue_button_click(self, sample_items, checked_items):
        """Intercepts the datacollection continue_button click for parameter setting"""
        tree_brick = self._tree_brick
        if tree_brick:
            for item in checked_items:
                model = item.get_model()
                if isinstance(model, queue_model_objects.GphlWorkflow):
                    dialog = tree_brick.dc_tree_widget.confirm_dialog
                    ss = dialog.conf_dialog_layout.take_snapshots_combo.currentText()
                    model.set_snapshot_count(int(ss) if ss else 0)

    # Called by the owning widget (task_toolbox_widget) to create
    # a collection. When a data collection group is selected.
    def _create_task(self, sample, shape):
        tasks = []

        path_template = self._create_path_template(sample, self._path_template)
        path_template.num_files = 0
开发者ID:MartinSavko,项目名称:mxcube,代码行数:69,代码来源:Qt4_create_gphl_workflow_widget.py

示例11: CreateAdvancedWidget

# 需要导入模块: from widgets.Qt4_data_path_widget import DataPathWidget [as 别名]
# 或者: from widgets.Qt4_data_path_widget.DataPathWidget import update_data_model [as 别名]

#.........这里部分代码省略.........
        In plate mode osciallation is start is in the middle of grid
        """
        CreateTaskBase.set_beamline_setup(self, bl_setup_hwobj)

        if bl_setup_hwobj.diffractometer_hwobj.in_plate_mode():
            self._acq_widget.acq_widget_layout.osc_start_label.\
                 setText("Oscillation middle:")

    def approve_creation(self):
        """
        Descript. :
        """
        result = CreateTaskBase.approve_creation(self)

        if len(self._advanced_methods_widget.\
           grid_treewidget.selectedItems()) == 0:
            msg = "No grid selected. Continuing with automatic grid."
            logging.getLogger("GUI").info(msg)
        return result
            
    def update_processing_parameters(self, crystal):
        """
        Descript. :
        """
        return

    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._acq_widget.update_data_model(self._acquisition_parameters,
                                                self._path_template)            
        elif isinstance(tree_item, Qt4_queue_item.BasketQueueItem):
            self.setDisabled(False)
        elif isinstance(tree_item, Qt4_queue_item.DataCollectionQueueItem):
            data_collection = tree_item.get_model()
            if tree_item.get_model().is_executed():
                self.setDisabled(True)
            else:
                self.setDisabled(False)

            # sample_data_model = self.get_sample_item(tree_item).get_model()
            #self._acq_widget.disable_inverse_beam(True)
            #self._graphics_manager_hwobj.de_select_all()
            self._graphics_manager_hwobj.select_shape(data_collection.grid)

            self._path_template = data_collection.get_path_template()
            self._data_path_widget.update_data_model(self._path_template)

            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)
        else:
            self.setDisabled(True)
  
    def _create_task(self,  sample, shape):
        """
        Descript. :
        """
        tasks = []
        selected_grids = self.get_selected_grids() 
开发者ID:jordiandreu,项目名称:mxcube,代码行数:70,代码来源:Qt4_create_advanced_widget.py

示例12: CreateAdvancedWidget

# 需要导入模块: from widgets.Qt4_data_path_widget import DataPathWidget [as 别名]
# 或者: from widgets.Qt4_data_path_widget.DataPathWidget import update_data_model [as 别名]

#.........这里部分代码省略.........
        """
        Descript. :
        """
        CreateTaskBase.single_item_selection(self, tree_item)
        self.dc_selected = False

        if isinstance(tree_item, Qt4_queue_item.SampleQueueItem):
            pass
        elif isinstance(tree_item, Qt4_queue_item.BasketQueueItem):
            pass
            #self.setDisabled(False)
        elif isinstance(tree_item, Qt4_queue_item.DataCollectionQueueItem) or \
             isinstance(tree_item, Qt4_queue_item.XrayCenteringQueueItem):

            if isinstance(tree_item, Qt4_queue_item.XrayCenteringQueueItem):
                data_collection = tree_item.get_model().reference_image_collection                 
            else:
                data_collection = tree_item.get_model()

            if tree_item.get_model().is_executed():
                self.setDisabled(True)
            else:
                self.setDisabled(False)

            if data_collection.is_mesh():
                # sample_data_model = self.get_sample_item(tree_item).get_model()
                #self._acq_widget.disable_inverse_beam(True)
                #self._graphics_manager_hwobj.de_select_all()
                self._graphics_manager_hwobj.select_shape(data_collection.grid)
                self._advanced_methods_widget.grid_treewidget.setCurrentItem(\
                     self._grid_map[data_collection.grid])

                self._path_template = data_collection.get_path_template()
                self._data_path_widget.update_data_model(self._path_template)

                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)
            self.dc_selected = True
        else:
            self.setDisabled(True)
        self.grid_treewidget_item_selection_changed()
  
    def _create_task(self,  sample, shape):
        """Creates tasks based on selected grids

        :param sample: selected sample object
        :type sample: SampleQueueItem
        :param shape: selected shape
        :type shape: Qt4_GraphicsLib.GraphicsItem
        """
        tasks = []
        selected_grid = self.get_selected_shapes()[0]
        mesh_dc = self._create_dc_from_grid(sample, selected_grid)

        exp_type = str(self._advanced_methods_widget.method_combo.currentText())
        if exp_type == "MeshScan":
            tasks.append(mesh_dc)
        elif exp_type == "XrayCentering":
            xray_centering = queue_model_objects.XrayCentering(mesh_dc)
            tasks.append(xray_centering)
        else:
            logging.getLogger("GUI").\
                warning("Method %s does not exist in queue_model_objects" % exp_type)
开发者ID:vrey01,项目名称:mxcube,代码行数:70,代码来源:Qt4_create_advanced_widget.py

示例13: CreateAdvancedScanWidget

# 需要导入模块: from widgets.Qt4_data_path_widget import DataPathWidget [as 别名]
# 或者: from widgets.Qt4_data_path_widget.DataPathWidget import update_data_model [as 别名]

#.........这里部分代码省略.........
                warning("No grid selected, please select a grid.")
            selected_grid = None
        return result and selected_grid
            
    def update_processing_parameters(self, crystal):
        """
        Descript. :
        """
        return

    def single_item_selection(self, tree_item):
        """
        Descript. :
        """
        CreateTaskBase.single_item_selection(self, tree_item)

        if isinstance(tree_item, Qt4_queue_item.SampleQueueItem):
            sample_model = tree_item.get_model()
            #self._processing_parameters = sample_model.processing_parameters
            #self._processing_widget.update_data_model(self._processing_parameters)
        elif isinstance(tree_item, Qt4_queue_item.DataCollectionQueueItem):
            data_collection = tree_item.get_model()

            if data_collection.experiment_type == EXPERIMENT_TYPE.MESH:
                if tree_item.get_model().is_executed():
                    self.setDisabled(True)
                else:
                    self.setDisabled(False)

                sample_data_model = self.get_sample_item(tree_item).get_model()
                self._acq_widget.disable_inverse_beam(True)

                self._path_template = data_collection.get_path_template()
                self._data_path_widget.update_data_model(self._path_template)

                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)
            else:
                self.setDisabled(True)
        else:
            self.setDisabled(True)

        if isinstance(tree_item, Qt4_queue_item.SampleQueueItem) or \
           isinstance(tree_item, Qt4_queue_item.DataCollectionGroupQueueItem) or \
           isinstance(tree_item, Qt4_queue_item.DataCollectionQueueItem):

            #self._processing_widget.update_data_model(self._processing_parameters)
            self._acq_widget.update_data_model(self._acquisition_parameters,
                                               self._path_template)
  
    def _create_task(self,  sample, shape):
        """
        Descript. :
        """
        data_collections = []

        selected_grid_info = None
        treewidget_item = self.mesh_widget.mesh_treewidget.selectedItem()
        if treewidget_item is not None:
            drawing_mgr = self.__list_items[treewidget_item]
            key = str(treewidget_item.text(0))
            selected_grid_info = drawing_mgr._get_grid(key)[0]

        if selected_grid_info:
开发者ID:folf,项目名称:mxcube,代码行数:70,代码来源:Qt4_create_advanced_scan_widget.py

示例14: CreateAdvancedScanWidget

# 需要导入模块: from widgets.Qt4_data_path_widget import DataPathWidget [as 别名]
# 或者: from widgets.Qt4_data_path_widget.DataPathWidget import update_data_model [as 别名]

#.........这里部分代码省略.........
                warning("No grid selected, please select a grid.")
            selected_grid = None
        return result and selected_grid
            
    def update_processing_parameters(self, crystal):
        """
        Descript. :
        """
        return

    def single_item_selection(self, tree_item):
        """
        Descript. :
        """
        CreateTaskBase.single_item_selection(self, tree_item)

        if isinstance(tree_item, Qt4_queue_item.SampleQueueItem):
            sample_model = tree_item.get_model()
            #self._processing_parameters = sample_model.processing_parameters
            #self._processing_widget.update_data_model(self._processing_parameters)
        elif isinstance(tree_item, Qt4_queue_item.DataCollectionQueueItem):
            data_collection = tree_item.get_model()

            if data_collection.experiment_type == EXPERIMENT_TYPE.MESH:
                if tree_item.get_model().is_executed():
                    self.setDisabled(True)
                else:
                    self.setDisabled(False)

                sample_data_model = self.get_sample_item(tree_item).get_model()
                self._acq_widget.disable_inverse_beam(True)

                self._path_template = data_collection.get_path_template()
                self._data_path_widget.update_data_model(self._path_template)

                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)
            else:
                self.setDisabled(True)
        else:
            self.setDisabled(True)

        if isinstance(tree_item, Qt4_queue_item.SampleQueueItem) or \
           isinstance(tree_item, Qt4_queue_item.DataCollectionGroupQueueItem) or \
           isinstance(tree_item, Qt4_queue_item.DataCollectionQueueItem):

            #self._processing_widget.update_data_model(self._processing_parameters)
            self._acq_widget.update_data_model(self._acquisition_parameters,
                                               self._path_template)
  
    def _create_task(self,  sample, shape):
        """
        Descript. :
        """
        data_collections = []

        selected_grid_info = None
        list_view_item = self.mesh_widget.mesh_treewidget.selectedItem()
        if list_view_item is not None:
            drawing_mgr = self.__list_items[list_view_item]
            key = str(list_view_item.text(0))
            selected_grid_info = drawing_mgr._get_grid(key)[0]

        if selected_grid_info:
开发者ID:olofsvensson,项目名称:mxcube,代码行数:70,代码来源:Qt4_create_advanced_scan_widget.py

示例15: EnergyScanParametersWidget

# 需要导入模块: from widgets.Qt4_data_path_widget import DataPathWidget [as 别名]
# 或者: from widgets.Qt4_data_path_widget.DataPathWidget import update_data_model [as 别名]

#.........这里部分代码省略.........
        
        # Other ---------------------------------------------------------------
        self.scan_actual_plot_widget.hide()
        self.scan_result_plot_widget.hide()

    def _prefix_ledit_change(self, new_value):
        self.energy_scan_model.set_name(str(new_value))
        self._tree_view_item.setText(0, self.energy_scan_model.get_name())

    def _run_number_ledit_change(self, new_value):
        if str(new_value).isdigit():
            self.energy_scan_model.set_number(int(new_value))
            self._tree_view_item.setText(0, self.energy_scan_model.get_name())
        
    def tab_changed(self):
        if self._tree_view_item:
            self.populate_widget(self._tree_view_item)

    def populate_widget(self, item):
        self._tree_view_item = item
        self.energy_scan_model = item.get_model()
        executed = self.energy_scan_model.is_executed()
        is_running = self.energy_scan_model.is_running() 

        self.data_path_widget.setDisabled(executed or is_running)
        self.periodic_table_widget.setDisabled(executed or is_running)
        #self.scan_actual_plot_widget.setEnabled()
        #self.scan_actual_plot_widget.setEnabled(not executed)
        #self.chooch_plot_widget.setEnabled(not executed)
 
        width = self.data_path_widget.width() + \
                self.snapshot_widget.width()
        self.scan_actual_plot_widget.setFixedWidth(width)
        self.scan_result_plot_widget.setFixedWidth(width)
        self.chooch_plot_widget.setFixedWidth(width)

        self.chooch_plot_widget.clear()
        title = "Element: %s, Edge: %s" % (\
                self.energy_scan_model.element_symbol,
                self.energy_scan_model.edge)

        if executed:
            self.scan_actual_plot_widget.hide()
            self.scan_result_plot_widget.show()

            result = self.energy_scan_model.get_scan_result()
            self.scan_result_plot_widget.plot_energy_scan_curve(result.data,
                                                         title)

            self.chooch_plot_widget.plot_energy_scan_results(\
              result.pk, result.fppPeak, result.fpPeak, result.ip, 
              result.fppInfl, result.fpInfl, result.rm, 
              result.chooch_graph_x, result.chooch_graph_y1, 
              result.chooch_graph_y2, result.title)
        elif is_running:
            self.scan_actual_plot_widget.show()
            self.scan_result_plot_widget.hide()
        else:
            self.scan_actual_plot_widget.hide()
            self.scan_result_plot_widget.show()
            self.scan_result_plot_widget.clear()

        self.data_path_widget.update_data_model(self.energy_scan_model.path_template)
        self.periodic_table_widget.set_current_element_edge(\
             self.energy_scan_model.element_symbol,
             self.energy_scan_model.edge)

        image = self.energy_scan_model.centred_position.snapshot_image
        self.snapshot_widget.display_snapshot(image, width=400)

    def element_clicked(self, symbol, energy):
        self.energy_scan_model.element_symbol = symbol
        self.energy_scan_model.edge = energy

    def set_enegy_scan_hwobj(self, energy_scan_hwobj):
        if self.energy_scan_hwobj is None:
            self.energy_scan_hwobj = energy_scan_hwobj
            self.energy_scan_hwobj.connect("energyScanStarted", self.energy_scan_started)
            self.energy_scan_hwobj.connect("scanNewPoint", self.energy_scan_new_point) 
            self.energy_scan_hwobj.connect("choochFinished", self.chooch_finished)

    def energy_scan_started(self, scan_info):
        self.scan_actual_plot_widget.clear()
        self.scan_actual_plot_widget.show()
        self.scan_result_plot_widget.clear()
        self.scan_result_plot_widget.hide()
        self.chooch_plot_widget.clear()
        self.scan_actual_plot_widget.start_new_scan(scan_info)
        self.data_path_widget.setEnabled(False)
        self.periodic_table_widget.setEnabled(False)

    def energy_scan_new_point(self, x, y):
        self.scan_actual_plot_widget.add_new_plot_value(x, y)

    def chooch_finished(self, pk, fppPeak, fpPeak, ip, fppInfl, fpInfl, rm, \
              chooch_graph_x, chooch_graph_y1, chooch_graph_y2, title):
        self.chooch_plot_widget.plot_energy_scan_results(pk, fppPeak, fpPeak, 
              ip, fppInfl, fpInfl, rm, chooch_graph_x, chooch_graph_y1, 
              chooch_graph_y2, title)
        self.scan_actual_plot_widget.plot_finished()
开发者ID:,项目名称:,代码行数:104,代码来源:


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