Пример #1
0
    def propertyChanged(self, property_name, old_value, new_value):
        if property_name == 'mnemonic':
            hwobj_names_list = new_value.split()
            for hwobj_name in hwobj_names_list:
                temp_motor_hwobj = self.getHardwareObject(hwobj_name)
                temp_motor_widget = Qt4_MotorSpinBoxBrick(self)
                temp_motor_widget.set_motor(temp_motor_hwobj, hwobj_name)
                temp_motor_widget.move_left_button.setVisible(
                    self['showMoveButtons'])
                temp_motor_widget.move_right_button.setVisible(
                    self['showMoveButtons'])
                temp_motor_widget.step_button.setVisible(self['showStep'])
                temp_motor_widget.stop_button.setVisible(self['showStop'])
                temp_motor_widget.set_line_step(self['defaultStep'])
                temp_motor_widget['defaultStep'] = self['defaultStep']
                temp_motor_widget['delta'] = self['delta']
                temp_motor_widget.step_changed(None)
                self.main_groupbox_hlayout.addWidget(temp_motor_widget)

                self.motor_hwobj_list.append(temp_motor_hwobj)
                self.motor_widget_list.append(temp_motor_widget)

            self.enable_motors_buttons.setVisible(self['showEnableButtons'])
            self.disable_motors_buttons.setVisible(self['showEnableButtons'])
            if self['showEnableButtons']:
                self.main_groupbox_hlayout.addWidget(
                    self.enable_motors_buttons)
                self.main_groupbox_hlayout.addWidget(
                    self.disable_motors_buttons)
            if len(self.motor_widget_labels):
                for index, label in enumerate(self.motor_widget_labels):
                    self.motor_widget_list[index].setLabel(label)
        elif property_name == 'moveButtonIcons':
            icon_list = new_value.split()
            for index in range(len(icon_list) - 1):
                if index % 2 == 0:
                    self.motor_widget_list[index / 2].move_left_button.setIcon(\
                         Qt4_Icons.load_icon(icon_list[index]))
                    self.motor_widget_list[index / 2].move_right_button.setIcon(\
                         Qt4_Icons.load_icon(icon_list[index + 1]))
        elif property_name == 'labels':
            self.motor_widget_labels = new_value.split()
            if len(self.motor_widget_list):
                for index, label in enumerate(self.motor_widget_labels):
                    self.motor_widget_list[index].setLabel(label)
        elif property_name == 'predefinedPositions':
            self.predefined_positions_list = new_value.split()
            for predefined_position in self.predefined_positions_list:
                temp_position_button = QPushButton(predefined_position,
                                                   self.main_group_box)
                self.main_groupbox_hlayout.addWidget(temp_position_button)
                temp_position_button.clicked.connect(lambda: \
                     self.predefined_position_clicked(predefined_position))
        else:
            BlissWidget.propertyChanged(self, property_name, old_value,
                                        new_value)
Пример #2
0
    def propertyChanged(self, property_name, old_value, new_value):
        if property_name == 'mnemonic':
            hwobj_names_list = new_value.split()
            for hwobj_name in hwobj_names_list:
                temp_motor_hwobj = self.getHardwareObject(hwobj_name)
                temp_motor_widget = Qt4_MotorSpinBoxBrick(self)
                temp_motor_widget.set_motor(temp_motor_hwobj, hwobj_name)
                temp_motor_widget.move_left_button.hide()
                temp_motor_widget.move_right_button.hide()
                temp_motor_widget.step_button.hide()
                temp_motor_widget.set_line_step(10.0)
                temp_motor_widget.step_changed(None)
                self.main_groupbox_hlayout.addWidget(temp_motor_widget)

                self.motor_hwobj_list.append(temp_motor_hwobj)
                self.motor_widget_list.append(temp_motor_widget)
            if len(self.motor_widget_labels):
                for index, label in enumerate(self.motor_widget_labels):
                    self.motor_widget_list[index].setLabel(label)
        elif property_name == 'icons':
            icons_list = new_value.split()
        elif property_name == 'labels':
            self.motor_widget_labels = new_value.split()
            if len(self.motor_widget_list):
                for index, label in enumerate(self.motor_widget_labels):
                    self.motor_widget_list[index].setLabel(label)
        elif property_name == 'predefinedPositions':
            self.predefined_positions_list = new_value.split()
            for predefined_position in self.predefined_positions_list:
                temp_position_button = QtGui.QPushButton(
                    predefined_position, self.main_group_box)
                self.main_groupbox_hlayout.addWidget(temp_position_button)
                temp_position_button.clicked.connect(lambda: \
                     self.predefined_position_clicked(predefined_position))
        else:
            BlissWidget.propertyChanged(self, property_name, old_value,
                                        new_value)
Пример #3
0
    def __init__(self, *args):
        BlissWidget.__init__(self, *args)

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

        # Internal values -----------------------------------------------------
        self.flux_hwobj = None
        self.beam_focusing_hwobj = None
        self.beamline_test_hwobj = None
        self.diffractometer_hwobj = None
        self.unf_hor_motor = None
        self.unf_ver_motor = None
        self.double_hor_motor = None
        self.double_ver_motor = None
        self.motor_widget_list = []
        self.focus_mode = None
        self.is_beam_location_phase = False

        # Properties ----------------------------------------------------------
        self.addProperty('hwobj_beam_focusing', 'string', '/eh1/beamFocusing')
        self.addProperty('hwobj_beamline_test', 'string', '/beamline-test')
        self.addProperty('hwobj_diffractometer', 'string', '/mini-diff')
        self.addProperty('hwobj_motors_list', 'string', '')
        self.addProperty('defaultSteps', 'string', '')
        self.addProperty('defaultDeltas', 'string', '')
        self.addProperty('defaultDecimals', 'string', '')

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

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

        # Graphic elements ----------------------------------------------------
        self.main_group_box = QGroupBox(self)
        self.unf_hor_motor_brick = Qt4_MotorSpinBoxBrick(self.main_group_box)
        self.unf_ver_motor_brick = Qt4_MotorSpinBoxBrick(self.main_group_box)
        self.double_hor_motor_brick = Qt4_MotorSpinBoxBrick(
            self.main_group_box)
        self.double_ver_motor_brick = Qt4_MotorSpinBoxBrick(
            self.main_group_box)
        self.motor_widget_list = (self.unf_hor_motor_brick,
                                  self.unf_ver_motor_brick,
                                  self.double_hor_motor_brick,
                                  self.double_ver_motor_brick)
        self.center_beam_button = QPushButton(self.main_group_box)
        self.center_beam_button.setFixedSize(27, 27)
        self.measure_flux_button = QPushButton(self.main_group_box)
        self.measure_flux_button.setFixedSize(27, 27)

        # Layout --------------------------------------------------------------
        _gbox_grid_layout = QGridLayout(self.main_group_box)
        _gbox_grid_layout.addWidget(self.unf_hor_motor_brick, 0, 0)
        _gbox_grid_layout.addWidget(self.unf_ver_motor_brick, 1, 0)
        _gbox_grid_layout.addWidget(self.double_hor_motor_brick, 0, 1)
        _gbox_grid_layout.addWidget(self.double_ver_motor_brick, 1, 1)
        _gbox_grid_layout.addWidget(self.center_beam_button, 0, 2)
        _gbox_grid_layout.addWidget(self.measure_flux_button, 1, 2)
        _gbox_grid_layout.setSpacing(2)
        _gbox_grid_layout.setContentsMargins(2, 2, 2, 2)

        _main_hlayout = QHBoxLayout(self)
        _main_hlayout.addWidget(self.main_group_box)
        _main_hlayout.setSpacing(0)
        _main_hlayout.setContentsMargins(0, 0, 0, 0)

        # Size Policy ---------------------------------------------------------

        # Qt signal/slot connections ------------------------------------------
        self.center_beam_button.clicked.connect(self.center_beam_clicked)
        self.measure_flux_button.clicked.connect(self.measure_flux_clicked)

        # Other ---------------------------------------------------------------
        self.unf_hor_motor_brick.setLabel("Horizontal")
        self.unf_ver_motor_brick.setLabel("Vertical")
        self.double_hor_motor_brick.setLabel("Horizontal")
        self.double_ver_motor_brick.setLabel("Vertical")

        self.unf_ver_motor_brick.move_left_button.setIcon(
            Qt4_Icons.load_icon("Down2"))
        self.unf_ver_motor_brick.move_right_button.setIcon(
            Qt4_Icons.load_icon("Up2"))
        self.unf_hor_motor_brick.setEnabled(False)
        self.unf_ver_motor_brick.setEnabled(False)
        self.double_hor_motor_brick.move_left_button.setIcon(
            Qt4_Icons.load_icon("Right2"))
        self.double_hor_motor_brick.move_right_button.setIcon(
            Qt4_Icons.load_icon("Left2"))
        self.double_ver_motor_brick.move_left_button.setIcon(
            Qt4_Icons.load_icon("Down2"))
        self.double_ver_motor_brick.move_right_button.setIcon(
            Qt4_Icons.load_icon("Up2"))
        self.double_hor_motor_brick.setEnabled(False)
        self.double_ver_motor_brick.setEnabled(False)

        self.double_hor_motor_brick.setVisible(False)
        self.double_ver_motor_brick.setVisible(False)

        self.center_beam_button.setToolTip("Start center beam procedure")
        self.center_beam_button.setIcon(Qt4_Icons.load_icon("QuickRealign"))
        self.measure_flux_button.setToolTip("Measure flux")
        self.measure_flux_button.setIcon(Qt4_Icons.load_icon("Sun"))