def __init__(self, parent, realtime_plot=False): qt_import.QWidget.__init__(self, parent) self.snapshot_gbox = qt_import.QGroupBox("Snapshot", self) self.animation_gbox = qt_import.QGroupBox("Animation", self) self.snapshot_label = qt_import.QLabel(self.snapshot_gbox) self.animation_label = qt_import.QLabel(self.animation_gbox) # Layout -------------------------------------------------------------- _snaphot_gbox_hlayout = qt_import.QHBoxLayout(self.snapshot_gbox) _snaphot_gbox_hlayout.addWidget(self.snapshot_label) _snaphot_gbox_hlayout.setContentsMargins(0, 0, 0, 0) _animation_gbox_hlayout = qt_import.QHBoxLayout(self.animation_gbox) _animation_gbox_hlayout.addWidget(self.animation_label) _animation_gbox_hlayout.setContentsMargins(0, 0, 0, 0) _main_vlayout = qt_import.QVBoxLayout(self) _main_vlayout.addWidget(self.snapshot_gbox) _main_vlayout.addWidget(self.animation_gbox) _main_vlayout.setSpacing(2) _main_vlayout.setContentsMargins(2, 2, 2, 2) _main_vlayout.addStretch(0) self.animation_gbox.setHidden(True)
def __init__(self, parent=None, name=None, fl=0): qt_import.QDialog.__init__(self, parent, qt_import.Qt.WindowFlags(fl)) if name is not None: self.setObjectName(name) # Internal variables -------------------------------------------------- # AsyncResult to return values self._async_result = None # Layout qt_import.QVBoxLayout(self) main_layout = self.layout() main_layout.setSpacing(10) main_layout.setMargin(6) self.setSizePolicy(qt_import.QSizePolicy.Expanding, qt_import.QSizePolicy.Expanding) self.setWindowTitle("GPhL Workflow parameters") # Info box self.info_gbox = qt_import.QGroupBox("Info", self) qt_import.QVBoxLayout(self.info_gbox) main_layout.addWidget(self.info_gbox) self.info_text = qt_import.QTextEdit(self.info_gbox) self.info_text.setFont(qt_import.QFont("Courier")) self.info_text.setReadOnly(True) self.info_gbox.layout().addWidget(self.info_text) # Special parameter box self.cplx_gbox = qt_import.QGroupBox("Indexing solution", self) qt_import.QVBoxLayout(self.cplx_gbox) main_layout.addWidget(self.cplx_gbox) self.cplx_gbox.setSizePolicy(qt_import.QSizePolicy.Expanding, qt_import.QSizePolicy.Expanding) self.cplx_widget = None # Parameter box self.parameter_gbox = qt_import.QGroupBox("Parameters", self) main_layout.addWidget(self.parameter_gbox) self.parameter_gbox.setSizePolicy(qt_import.QSizePolicy.Expanding, qt_import.QSizePolicy.Expanding) self.params_widget = None # Button bar button_layout = qt_import.QHBoxLayout(None) hspacer = qt_import.QSpacerItem(1, 20, qt_import.QSizePolicy.Expanding, qt_import.QSizePolicy.Minimum) button_layout.addItem(hspacer) self.continue_button = qt_import.QPushButton("Continue", self) button_layout.addWidget(self.continue_button) self.cancel_button = qt_import.QPushButton("Abort", self) button_layout.addWidget(self.cancel_button) main_layout.addLayout(button_layout) self.continue_button.clicked.connect(self.continue_button_click) self.cancel_button.clicked.connect(self.cancel_button_click) self.resize( qt_import.QSize(1018, 472).expandedTo(self.minimumSizeHint()))
def __init__(self, parent=None, name=None, fl=0): qt_import.QWidget.__init__(self, parent, qt_import.Qt.WindowFlags(fl)) # Internal values ----------------------------------------------------- self.metadata_dict = {} self.chan_config = {} self.chan_seq = [] self.chan_combo_items = [] # Signals ------------------------------------------------------------- # Slots --------------------------------------------------------------- # Graphic elements ---------------------------------------------------- _channels_gbox = qt_import.QGroupBox("Channels", self) self.chan_table = qt_import.QTableWidget(_channels_gbox) self.metadata_gbox = qt_import.QGroupBox("Metadata", self) # Layout -------------------------------------------------------------- _channels_gbox_vlayout = qt_import.QGridLayout(_channels_gbox) _channels_gbox_vlayout.addWidget(self.chan_table, 0, 0) _channels_gbox_vlayout.setSpacing(0) _channels_gbox_vlayout.setContentsMargins(2, 2, 2, 2) self.metadata_gbox_glayout = qt_import.QGridLayout(self.metadata_gbox) self.metadata_gbox_glayout.setSpacing(0) self.metadata_gbox_glayout.setContentsMargins(2, 2, 2, 2) _main_vlayout = qt_import.QVBoxLayout(self) _main_vlayout.addWidget(_channels_gbox) _main_vlayout.addWidget(self.metadata_gbox) _main_vlayout.setSpacing(0) _main_vlayout.setContentsMargins(2, 2, 2, 2) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ self.chan_table.cellChanged.connect(self.chan_table_cell_changed) if hasattr(HWR.beamline, "ssx_setup"): if HWR.beamline.ssx_setup is not None: self.chan_seq_graphics_view = HWR.beamline.ssx_setup.get_graphics_view( ) _channels_gbox_vlayout.addWidget(self.chan_seq_graphics_view, 0, 1, 2, 1) self.init_view() HWR.beamline.ssx_setup.connect("valueChanged", self.metadata_values_changed) _channels_gbox.setCheckable(True) _channels_gbox.setChecked(False)
def __init__(self, *args): BaseWidget.__init__(self, *args) # Hardware objects ---------------------------------------------------- # Internal values ----------------------------------------------------- # Properties ---------------------------------------------------------- # Signals ------------------------------------------------------------ # Slots --------------------------------------------------------------- # Graphic elements ---------------------------------------------------- self.main_gbox = qt_import.QGroupBox("Aperture", self) self.aperture_diameter_combo = qt_import.QComboBox(self.main_gbox) self.aperture_diameter_combo.setMinimumWidth(100) self.aperture_position_combo = qt_import.QComboBox(self.main_gbox) self.aperture_position_combo.setMinimumWidth(100) # Layout -------------------------------------------------------------- _main_gbox_vlayout = qt_import.QVBoxLayout(self.main_gbox) _main_gbox_vlayout.addWidget(self.aperture_diameter_combo) _main_gbox_vlayout.addWidget(self.aperture_position_combo) _main_gbox_vlayout.addStretch() _main_gbox_vlayout.setSpacing(2) _main_gbox_vlayout.setContentsMargins(0, 0, 0, 0) _main_vlayout = qt_import.QVBoxLayout(self) _main_vlayout.addWidget(self.main_gbox) _main_vlayout.setSpacing(0) # _main_vlayout.addSpacing(0) _main_vlayout.setContentsMargins(2, 2, 2, 2) # Qt signal/slot connections ------------------------------------------ self.aperture_diameter_combo.activated.connect(self.change_diameter) self.aperture_position_combo.activated.connect(self.change_position) # SizePolicies -------------------------------------------------------- # Other --------------------------------------------------------------- colors.set_widget_color( self.aperture_diameter_combo, colors.LIGHT_GREEN, qt_import.QPalette.Button ) colors.set_widget_color( self.aperture_position_combo, colors.LIGHT_GREEN, qt_import.QPalette.Button ) self.aperture_diameter_combo.setMinimumWidth(100) self.aperture_position_combo.setMinimumWidth(100) self.init_aperture() self.connect( HWR.beamline.beam.aperture, "diameterIndexChanged", self.diameter_changed ) self.connect( HWR.beamline.beam.aperture, "valueChanged", self.position_changed )
def _initialize_graphics(self): # Graphic elements ---------------------------------------------------- self._workflow_type_widget = qt_import.QGroupBox("Workflow type", self) self._workflow_cbox = qt_import.QComboBox(self._workflow_type_widget) self._gphl_acq_widget = qt_import.QGroupBox("Acquisition", self) self._gphl_acq_param_widget = GphlAcquisitionWidget( self._gphl_acq_widget, "gphl_acquisition_parameter_widget") self._gphl_diffractcal_widget = GphlDiffractcalWidget( self._gphl_acq_widget, "gphl_diffractcal_widget") self._data_path_widget = DataPathWidget(self, "create_dc_path_widget", layout="vertical") data_path_layout = self._data_path_widget.data_path_layout data_path_layout.file_name_label.hide() data_path_layout.file_name_value_label.hide() data_path_layout.run_number_label.hide() data_path_layout.run_number_ledit.hide() data_path_layout.folder_ledit.setReadOnly(True) # Layout -------------------------------------------------------------- _workflow_type_vlayout = qt_import.QVBoxLayout( self._workflow_type_widget) _workflow_type_vlayout.addWidget(self._workflow_cbox) _gphl_acq_vlayout = qt_import.QVBoxLayout(self._gphl_acq_widget) _gphl_acq_vlayout.addWidget(self._gphl_acq_param_widget) _gphl_acq_vlayout.addWidget(self._gphl_diffractcal_widget) _main_vlayout = qt_import.QVBoxLayout(self) _main_vlayout.addWidget(self._workflow_type_widget) _main_vlayout.addWidget(self._data_path_widget) _main_vlayout.addWidget(self._gphl_acq_widget) _main_vlayout.addStretch(0) _main_vlayout.setSpacing(2) _main_vlayout.setContentsMargins(0, 0, 0, 0) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ self._workflow_cbox.currentIndexChanged.connect(self.workflow_selected) # set up popup data dialog self.gphl_data_dialog = GphlDataDialog(self, "GPhL Workflow Data") self.gphl_data_dialog.setModal(True) self.gphl_data_dialog.continueClickedSignal.connect(self.data_acquired)
def __init__(self, *args): BaseWidget.__init__(self, *args) # Hardware objects ---------------------------------------------------- self.motor_hwobj = None # Internal values ----------------------------------------------------- self.positions = None # Properties ---------------------------------------------------------- self.add_property("label", "string", "") self.add_property("mnemonic", "string", "") self.add_property("icons", "string", "") self.add_property("showMoveButtons", "boolean", True) # Signals ------------------------------------------------------------- # Slots --------------------------------------------------------------- self.define_slot("setEnabled", ()) # Graphic elements ---------------------------------------------------- _main_gbox = qt_import.QGroupBox(self) self.label = qt_import.QLabel("motor:", _main_gbox) self.positions_combo = qt_import.QComboBox(self) self.previous_position_button = qt_import.QPushButton(_main_gbox) self.next_position_button = qt_import.QPushButton(_main_gbox) # Layout -------------------------------------------------------------- _main_gbox_hlayout = qt_import.QHBoxLayout(_main_gbox) _main_gbox_hlayout.addWidget(self.label) _main_gbox_hlayout.addWidget(self.positions_combo) _main_gbox_hlayout.addWidget(self.previous_position_button) _main_gbox_hlayout.addWidget(self.next_position_button) _main_gbox_hlayout.setSpacing(2) _main_gbox_hlayout.setContentsMargins(2, 2, 2, 2) _main_hlayout = qt_import.QHBoxLayout(self) _main_hlayout.addWidget(_main_gbox) _main_hlayout.setSpacing(0) _main_hlayout.setContentsMargins(0, 0, 0, 0) # Size Policy --------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ self.positions_combo.activated.connect(self.position_selected) self.previous_position_button.clicked.connect( self.select_previous_position) self.next_position_button.clicked.connect(self.select_next_position) # Other --------------------------------------------------------------- self.positions_combo.setFixedHeight(27) self.positions_combo.setToolTip( "Moves the motor to a predefined position") self.previous_position_button.setIcon(icons.load_icon("Minus2")) self.previous_position_button.setFixedSize(27, 27) self.next_position_button.setIcon(icons.load_icon("Plus2")) self.next_position_button.setFixedSize(27, 27)
def __init__(self, *args): BaseWidget.__init__(self, *args) # Hardware objects ---------------------------------------------------- # Internal values ----------------------------------------------------- # Properties ---------------------------------------------------------- self.add_property("formatString", "formatString", "#.#") # Signals ------------------------------------------------------------ # Slots --------------------------------------------------------------- # Graphic elements ---------------------------------------------------- self.main_gbox = qt_import.QGroupBox("Beam size", self) hor_label = qt_import.QLabel("Horizontal:", self.main_gbox) self.hor_size_ledit = qt_import.QLineEdit(self.main_gbox) self.hor_size_ledit.setMaximumWidth(120) self.hor_size_ledit.setEnabled(False) self.hor_size_ledit.setAlignment(qt_import.Qt.AlignRight) ver_label = qt_import.QLabel("Vertical:", self.main_gbox) self.ver_size_ledit = qt_import.QLineEdit(self.main_gbox) self.ver_size_ledit.setMaximumWidth(120) self.ver_size_ledit.setEnabled(False) self.ver_size_ledit.setAlignment(qt_import.Qt.AlignRight) bold_font = self.hor_size_ledit.font() bold_font.setBold(True) self.hor_size_ledit.setFont(bold_font) self.ver_size_ledit.setFont(bold_font) # Layout -------------------------------------------------------------- _main_gbox_gridlayout = qt_import.QGridLayout(self.main_gbox) _main_gbox_gridlayout.addWidget(hor_label, 0, 0) _main_gbox_gridlayout.addWidget(self.hor_size_ledit, 0, 1) _main_gbox_gridlayout.addWidget(ver_label, 1, 0) _main_gbox_gridlayout.addWidget(self.ver_size_ledit, 1, 1) _main_gbox_gridlayout.setRowStretch(2, 10) _main_gbox_gridlayout.setSpacing(2) _main_gbox_gridlayout.setContentsMargins(0, 0, 0, 0) _main_vlayout = qt_import.QVBoxLayout(self) _main_vlayout.addWidget(self.main_gbox) _main_vlayout.setSpacing(0) _main_vlayout.setContentsMargins(2, 2, 2, 2) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ # Other --------------------------------------------------------------- self.connect(HWR.beamline.beam, "beamInfoChanged", self.beam_info_changed)
def __init__(self, *args): BaseWidget.__init__(self, *args) # Hardware objects ---------------------------------------------------- # Internal variables -------------------------------------------------- # Properties ---------------------------------------------------------- self.add_property("formatString", "formatString", "###.##") # Signals ------------------------------------------------------------ # Slots --------------------------------------------------------------- # Graphic elements ---------------------------------------------------- self.group_box = qt_import.QGroupBox("Transmission", self) current_label = qt_import.QLabel("Current:", self.group_box) current_label.setFixedWidth(75) self.transmission_ledit = qt_import.QLineEdit(self.group_box) self.transmission_ledit.setReadOnly(True) set_to_label = qt_import.QLabel("Set to:", self.group_box) self.new_value_ledit = qt_import.QLineEdit(self.group_box) # Layout -------------------------------------------------------------- _group_box_gridlayout = qt_import.QGridLayout(self.group_box) _group_box_gridlayout.addWidget(current_label, 0, 0) _group_box_gridlayout.addWidget(self.transmission_ledit, 0, 1) _group_box_gridlayout.addWidget(set_to_label, 1, 0) _group_box_gridlayout.addWidget(self.new_value_ledit, 1, 1) _group_box_gridlayout.setSpacing(0) _group_box_gridlayout.setContentsMargins(1, 1, 1, 1) _main_vlayout = qt_import.QVBoxLayout(self) _main_vlayout.setSpacing(0) _main_vlayout.setContentsMargins(0, 0, 2, 2) _main_vlayout.addWidget(self.group_box) # SizePolicies -------------------------------------------------------- # Other --------------------------------------------------------------- self._update_ledit_color(colors.LIGHT_GREEN) self.validator = qt_import.QDoubleValidator(0, 100, 2, self.new_value_ledit) self.new_value_ledit.setToolTip("Transmission limits 0 : 100 %") self.instance_synchronize("transmission_ledit", "new_value_ledit") if HWR.beamline.transmission is not None: # Qt signal/slot connections ------------------------------------------ self.new_value_ledit.returnPressed.connect(self.current_value_changed) self.new_value_ledit.textChanged.connect(self.input_field_changed) self.connect(HWR.beamline.transmission, "stateChanged", self._state_changed) self.connect(HWR.beamline.transmission, "valueChanged", self._value_changed) self.connected() else: self.disconnected()
def __init__(self, *args): BaseWidget.__init__(self, *args) # Properties ---------------------------------------------------------- self.add_property("title", "string", "Shutter") self.add_property("hwobj_shutter", "string", "") # Signals ------------------------------------------------------------- # Slots --------------------------------------------------------------- # Hardware objects ---------------------------------------------------- self.shutter_hwobj = None # Internal values ----------------------------------------------------- # Graphic elements ---------------------------------------------------- self.main_groupbox = qt_import.QGroupBox("Shutter", self) self.main_groupbox.setAlignment(qt_import.Qt.AlignCenter) self.state_label = qt_import.QLabel("<b>unknown</b>", self.main_groupbox) self.state_label.setAlignment(qt_import.Qt.AlignCenter) self.state_label.setFixedHeight(24) colors.set_widget_color(self.state_label, colors.LIGHT_GRAY) _button_widget = qt_import.QWidget(self.main_groupbox) self.open_button = qt_import.QPushButton( icons.load_icon("ShutterOpen"), "Open", _button_widget) self.close_button = qt_import.QPushButton( icons.load_icon("ShutterClose"), "Close", _button_widget) # Layout -------------------------------------------------------------- _button_widget_hlayout = qt_import.QHBoxLayout(_button_widget) _button_widget_hlayout.addWidget(self.open_button) _button_widget_hlayout.addWidget(self.close_button) _button_widget_hlayout.setSpacing(2) _button_widget_hlayout.setContentsMargins(0, 0, 0, 0) _main_gbox_vlayout = qt_import.QVBoxLayout(self.main_groupbox) _main_gbox_vlayout.addWidget(self.state_label) _main_gbox_vlayout.addWidget(_button_widget) _main_gbox_vlayout.setSpacing(2) _main_gbox_vlayout.setContentsMargins(2, 2, 2, 2) _main_vlayout = qt_import.QVBoxLayout(self) _main_vlayout.addWidget(self.main_groupbox) _main_vlayout.setSpacing(0) _main_vlayout.setContentsMargins(0, 0, 0, 0) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ self.open_button.clicked.connect(self.open_button_clicked) self.close_button.clicked.connect(self.close_button_clicked)
def __init__(self, *args): BaseWidget.__init__(self, *args) # variables ----------------------------------------------------------- self.current_beam_position = None self.current_zoom_pos_name = None self.current_zoom_idx = -1 self.multipos_file_xml_path = None # Hardware objects ---------------------------------------------------- self.multipos_hwobj = None # Internal values ----------------------------------------------------- self.table_created = False # Properties ---------------------------------------------------------- self.add_property("zoom", "string", "") # Signals ------------------------------------------------------------ # Slots --------------------------------------------------------------- # Graphic elements ---------------------------------------------------- self.main_groupbox = qt_import.QGroupBox("Beam Position", self) self.ui_widgets_manager = qt_import.load_ui_file( "camera_beam_brick.ui") # Size policy -------------------------------- self.ui_widgets_manager.beam_positions_table.setSizePolicy( qt_import.QSizePolicy.Minimum, qt_import.QSizePolicy.Minimum, ) # Layout -------------------------------------------------------------- _groupbox_vlayout = qt_import.QVBoxLayout(self) _groupbox_vlayout.addWidget(self.ui_widgets_manager) _groupbox_vlayout.setSpacing(0) _groupbox_vlayout.setContentsMargins(0, 0, 0, 0) self.main_groupbox.setLayout(_groupbox_vlayout) _main_vlayout = qt_import.QVBoxLayout(self) _main_vlayout.addWidget(self.main_groupbox) _main_vlayout.setSpacing(0) _main_vlayout.setContentsMargins(0, 0, 0, 0) self.setLayout(_main_vlayout) # Qt signal/slot connections ------------------------------------------ self.ui_widgets_manager.save_current_beam_pos_pushbutton.clicked.connect( self.save_beam_position)
def __init__(self, *args): BaseWidget.__init__(self, *args) # Hardware objects ---------------------------------------------------- self.image_tracking_hwobj = None # Internal values ----------------------------------------------------- # Properties ---------------------------------------------------------- self.add_property("mnemonic", "string", "/image-tracking") # Signals ------------------------------------------------------------ # Slots --------------------------------------------------------------- # Graphic elements ---------------------------------------------------- _main_groupbox = qt_import.QGroupBox("Image tracking", self) self.state_label = qt_import.QLabel("<b> </b>", _main_groupbox) self.image_tracking_cbox = qt_import.QCheckBox( "Enable Adxv image tracking", _main_groupbox) self.filter_frames_cbox = qt_import.QCheckBox( "Filter frames based on Dozor score", _main_groupbox) self.spot_list_cbox = qt_import.QCheckBox("Indicate spots in ADxV", _main_groupbox) # Layout -------------------------------------------------------------- _main_groupbox_vlayout = qt_import.QVBoxLayout(_main_groupbox) _main_groupbox_vlayout.addWidget(self.state_label) _main_groupbox_vlayout.addWidget(self.image_tracking_cbox) _main_groupbox_vlayout.addWidget(self.filter_frames_cbox) _main_groupbox_vlayout.addWidget(self.spot_list_cbox) _main_groupbox_vlayout.setSpacing(2) _main_groupbox_vlayout.setContentsMargins(4, 4, 4, 4) _main_vlayout = qt_import.QVBoxLayout(self) _main_vlayout.addWidget(_main_groupbox) _main_vlayout.setSpacing(0) _main_vlayout.setContentsMargins(0, 0, 0, 0) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ self.image_tracking_cbox.toggled.connect( self.image_tracking_cbox_toggled) self.filter_frames_cbox.toggled.connect( self.filter_frames_cbox_toggled) self.spot_list_cbox.toggled.connect(self.spot_list_cbox_toggled) # Other --------------------------------------------------------------- self.state_label.setAlignment(qt_import.Qt.AlignCenter) self.state_label.setFixedHeight(24) self.state_changed("unknown")
def __init__(self, parent=None, name=None, fl=0): qt_import.QWidget.__init__(self, parent, qt_import.Qt.WindowFlags(fl)) self.setObjectName("char_type_widget") # Hardware objects ---------------------------------------------------- # Internal variables -------------------------------------------------- # Graphic elements ---------------------------------------------------- self.charact_type_gbox = qt_import.QGroupBox(self) # Fix the widths of the widgets to make the layout look nicer, # and beacuse the qt layout engine is so tremendosly good. self.charact_type_gbox.setFixedWidth(800) self.charact_type_gbox.setFixedHeight(220) self.charact_type_tbox = qt_import.QToolBox(self.charact_type_gbox) self.routine_dc_page = RoutineDCWidgetLayout(self.charact_type_tbox) self.sad_page = SADWidgetLayout(self.charact_type_tbox) self.rad_damage_page = RadiationDamageWidgetLayout(self.charact_type_tbox) self.charact_type_tbox.addItem(self.routine_dc_page, "Routine-DC") self.charact_type_tbox.addItem(self.sad_page, "SAD") self.charact_type_tbox.addItem(self.rad_damage_page, "Radiation damage") # Layout -------------------------------------------------------------- _charact_type_gbox_vlayout = qt_import.QVBoxLayout(self.charact_type_gbox) _charact_type_gbox_vlayout.addWidget(self.charact_type_tbox) _charact_type_gbox_vlayout.addStretch(0) _charact_type_gbox_vlayout.setSpacing(0) _charact_type_gbox_vlayout.setContentsMargins(0, 0, 0, 0) _main_vlayout = qt_import.QVBoxLayout(self) _main_vlayout.addWidget(self.charact_type_gbox) _main_vlayout.addStretch(0) _main_vlayout.setSpacing(0) _main_vlayout.setContentsMargins(0, 0, 0, 0) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ self.routine_dc_page.dose_limit_cbx.toggled.connect(self.enable_dose_ledit) self.routine_dc_page.time_limit_cbx.toggled.connect(self.enable_time_ledit) self.routine_dc_page.dose_time_bgroup.buttonClicked.connect( self._toggle_time_dose ) # Other --------------------------------------------------------------- self._toggle_time_dose(self.routine_dc_page.dose_time_bgroup.checkedId())
def __init__(self, *args): BaseWidget.__init__(self, *args) # Hardware objects ---------------------------------------------------- self.beamstop_hwobj = None # Internal variables -------------------------------------------------- self.beamstop_limits = [0, 200] # Properties ---------------------------------------------------------- self.add_property("mnemonic", "string", "") self.add_property("formatString", "formatString", "###.##") # Graphic elements ---------------------------------------------------- self.group_box = qt_import.QGroupBox("Beamstop distance", self) current_label = qt_import.QLabel("Current:", self.group_box) current_label.setFixedWidth(75) self.beamstop_distance_ledit = qt_import.QLineEdit(self.group_box) self.beamstop_distance_ledit.setReadOnly(True) set_to_label = qt_import.QLabel("Set to:", self.group_box) self.new_value_ledit = qt_import.QLineEdit(self.group_box) # Layout -------------------------------------------------------------- _group_box_gridlayout = qt_import.QGridLayout(self.group_box) _group_box_gridlayout.addWidget(current_label, 0, 0) _group_box_gridlayout.addWidget(self.beamstop_distance_ledit, 0, 1) _group_box_gridlayout.addWidget(set_to_label, 1, 0) _group_box_gridlayout.addWidget(self.new_value_ledit, 1, 1) _group_box_gridlayout.setSpacing(0) _group_box_gridlayout.setContentsMargins(1, 1, 1, 1) _main_vlayout = qt_import.QVBoxLayout(self) _main_vlayout.setSpacing(0) _main_vlayout.setContentsMargins(0, 0, 2, 2) _main_vlayout.addWidget(self.group_box) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ self.new_value_ledit.returnPressed.connect(self.current_value_changed) self.new_value_ledit.textChanged.connect(self.input_field_changed) # Other --------------------------------------------------------------- colors.set_widget_color(self.new_value_ledit, colors.LINE_EDIT_ACTIVE, qt_import.QPalette.Base) self.new_value_validator = qt_import.QDoubleValidator( 0, 100, 2, self.new_value_ledit)
def __init__(self, *args): BaseWidget.__init__(self, *args) # Properties ---------------------------------------------------------- # Signals ------------------------------------------------------------ # Slots --------------------------------------------------------------- # Hardware objects ---------------------------------------------------- # Internal values ----------------------------------------------------- # Graphic elements ---------------------------------------------------- self.main_groupbox = qt_import.QGroupBox("Door interlock", self) self.main_groupbox.setAlignment(qt_import.Qt.AlignCenter) self.state_label = qt_import.QLabel("<b>unknown</b>", self.main_groupbox) colors.set_widget_color(self.state_label, self.STATES["unknown"]) self.state_label.setAlignment(qt_import.Qt.AlignCenter) self.state_label.setFixedHeight(24) self.unlock_door_button = qt_import.QPushButton( icons.load_icon("EnterHutch"), "Unlock", self.main_groupbox) # Layout -------------------------------------------------------------- _main_gbox_vlayout = qt_import.QVBoxLayout(self.main_groupbox) _main_gbox_vlayout.addWidget(self.state_label) _main_gbox_vlayout.addWidget(self.unlock_door_button) _main_gbox_vlayout.setSpacing(2) _main_gbox_vlayout.setContentsMargins(4, 4, 4, 4) _main_vlayout = qt_import.QVBoxLayout(self) _main_vlayout.addWidget(self.main_groupbox) _main_vlayout.setSpacing(0) _main_vlayout.setContentsMargins(0, 0, 0, 0) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ self.unlock_door_button.clicked.connect(self.unlock_doors) # Other --------------------------------------------------------------- self.state_label.setToolTip("Shows the current door state") self.unlock_door_button.setToolTip("Unlocks the doors") self.connect(HWR.beamline.hutch_interlock, "valueChanged", self.value_changed)
def __init__(self, parent=None, name=None, fl=0, data_model=None): qt_import.QWidget.__init__(self, parent, qt_import.Qt.WindowFlags(fl)) if name is not None: self.setObjectName(name) main_gbox = qt_import.QGroupBox("Comments", self) self.comment_textbox = qt_import.QTextEdit(main_gbox) main_gbox_vbox = qt_import.QVBoxLayout(main_gbox) main_gbox_vbox.addWidget(self.comment_textbox) main_gbox_vbox.setSpacing(0) main_gbox_vbox.setContentsMargins(0, 0, 0, 0) self.main_layout = qt_import.QVBoxLayout(self) self.main_layout.addWidget(main_gbox) self.main_layout.setSpacing(0) self.main_layout.setContentsMargins(0, 0, 0, 0)
def __init__(self, *args): BaseWidget.__init__(self, *args) # Internal values ----------------------------------------------------- # Properties ---------------------------------------------------------- self.add_property("confirmPhaseChange", "boolean", False) # Properties to initialize hardware objects -------------------------- # Signals ------------------------------------------------------------ # Slots --------------------------------------------------------------- # Graphic elements ---------------------------------------------------- self.group_box = qt_import.QGroupBox("Phase", self) self.phase_combobox = qt_import.QComboBox(self.group_box) # Layout -------------------------------------------------------------- _group_box_vlayout = qt_import.QVBoxLayout(self.group_box) _group_box_vlayout.addWidget(self.phase_combobox) _group_box_vlayout.addStretch() _group_box_vlayout.setSpacing(2) _group_box_vlayout.setContentsMargins(0, 0, 0, 0) _main_vlayout = qt_import.QVBoxLayout(self) _main_vlayout.addWidget(self.group_box) _main_vlayout.setSpacing(0) _main_vlayout.setContentsMargins(2, 2, 2, 2) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ self.phase_combobox.activated.connect(self.change_phase) # Other --------------------------------------------------------------- colors.set_widget_color(self.phase_combobox, colors.LIGHT_GREEN, qt_import.QPalette.Button) self.init_phase_list() self.connect(HWR.beamline.diffractometer, "minidiffPhaseChanged", self.phase_changed)
def __init__(self, *args): BaseWidget.__init__(self, *args) # Signals ------------------------------------------------------------ # Slots --------------------------------------------------------------- self.define_slot("data_policy_changed", ()) # Graphic elements ---------------------------------------------------- self.main_groupbox = qt_import.QGroupBox("Export Data", self) self.ui_widgets_manager = qt_import.load_ui_file( "export_data_layout.ui") # Internal values ----------------------------------------------------- self.__current_sample = None self.__data_policy_info_dict = {} # Layout -------------------------------------------------------------- _groupbox_vlayout = qt_import.QVBoxLayout(self) _groupbox_vlayout.addWidget(self.ui_widgets_manager) _groupbox_vlayout.setSpacing(0) _groupbox_vlayout.setContentsMargins(0, 0, 0, 0) self.main_groupbox.setLayout(_groupbox_vlayout) # Qt signal/slot connections ------------------------------------------ self.ui_widgets_manager.export_button.clicked.connect( self.export_button_clicked) self.ui_widgets_manager.sample_name_tbox.textChanged.connect( self.set_export_file_name) self.ui_widgets_manager.filename_tbox.textChanged.connect( self.set_export_file_name) self.ui_widgets_manager.file_index_tbox.textChanged.connect( self.set_export_file_name) self.ui_widgets_manager.select_file_path_button.clicked.connect( self.select_file_path_button_clicked) self.ui_widgets_manager.reload_policy_data_button.clicked.connect( self.reload_policy_data_button_clicked)
def __init__(self, *args): """TurretBrick constructor Arguments: :params args: """ super(TurretBrick, self).__init__(*args) # Hardware objects ---------------------------------------------------- self.multiple_pos_hwobj = None self.turret_hwobj = None # hardware object # Graphic elements----------------------------------------------------- self.frame = qt_import.QGroupBox() self.frame_layout = qt_import.QVBoxLayout() self.custom_dial = DialWithTags(dict()) # self.dial.setMinimum(1) # self.dial.setMaximum(5) # self.dial.setSingleStep(1) # self.dial.setNotchesVisible(True) # Layout -------------------------------------------------------------- self.frame_layout.addWidget(self.custom_dial) self.frame.setLayout(self.frame_layout) self.main_layout = qt_import.QVBoxLayout() self.main_layout.addWidget(self.frame, 0, qt_import.Qt.AlignCenter) self.setLayout(self.main_layout) # Qt signal/slot connections ----------------------------------------- self.custom_dial.valueChanged.connect(self.value_changed) # define properties self.add_property("mnemonic", "string", "") # member variables -------------------------------------------------------------- self.zoom_position_dict = {}
def __init__(self, *args): BaseWidget.__init__(self, *args) # Hardware objects ---------------------------------------------------- self.beam_focusing_hwobj = None # Internal values ----------------------------------------------------- # Properties ---------------------------------------------------------- self.add_property("mnemonic", "string", "") # Signals ------------------------------------------------------------ # Slots --------------------------------------------------------------- # Graphic elements ---------------------------------------------------- _main_groupbox = qt_import.QGroupBox("Beamline mode", self) self.beam_focusing_combo = qt_import.QComboBox(_main_groupbox) self.beam_focusing_combo.setMinimumWidth(100) # Layout -------------------------------------------------------------- _main_groupbox_vlayout = qt_import.QVBoxLayout(_main_groupbox) _main_groupbox_vlayout.addWidget(self.beam_focusing_combo) _main_groupbox_vlayout.addStretch() _main_groupbox_vlayout.setSpacing(2) _main_groupbox_vlayout.setContentsMargins(2, 2, 2, 2) _main_vlayout = qt_import.QVBoxLayout(self) _main_vlayout.addWidget(_main_groupbox) _main_vlayout.setSpacing(0) _main_vlayout.setContentsMargins(2, 2, 2, 2) # Qt signal/slot connections ------------------------------------------ self.beam_focusing_combo.activated.connect(self.change_focus_mode) # SizePolicies -------------------------------------------------------- # Other --------------------------------------------------------------- colors.set_widget_color(self.beam_focusing_combo, colors.LIGHT_GREEN, qt_import.QPalette.Button)
def __init__(self, parent=None, name=None, fl=0): qt_import.QWidget.__init__(self, parent, qt_import.Qt.WindowFlags(fl)) if not name: self.setObjectName("ReferenceImageWidget") # Hardware objects ---------------------------------------------------- # Internal variables -------------------------------------------------- # Graphic elements ---------------------------------------------------- self.group_box = qt_import.QGroupBox("Reference images", self) self.tool_box = qt_import.QToolBox(self.group_box) self.page_widget = qt_import.QWidget(self.tool_box) self.path_widget = DataPathWidget(self.page_widget) self.acq_widget = AcquisitionWidget(self.page_widget, "horizontal") self.acq_widget.acq_widget_layout.shutterless_cbx.hide() # self.acq_widget.acq_widget_layout.setFixedHeight(130) self.tool_box.addItem(self.page_widget, "Acquisition parameters") # Layout -------------------------------------------------------------- _page_widget_layout = qt_import.QVBoxLayout(self.page_widget) _page_widget_layout.addWidget(self.path_widget) _page_widget_layout.addWidget(self.acq_widget) _page_widget_layout.addStretch(0) _page_widget_layout.setSpacing(0) _page_widget_layout.setContentsMargins(0, 0, 0, 0) _group_box_vlayout = qt_import.QVBoxLayout(self.group_box) _group_box_vlayout.addWidget(self.tool_box) _group_box_vlayout.setSpacing(0) _group_box_vlayout.setContentsMargins(0, 0, 0, 0) _main_vlayout = qt_import.QVBoxLayout(self) _main_vlayout.addWidget(self.group_box) _main_vlayout.setSpacing(0) _main_vlayout.setContentsMargins(0, 0, 0, 0)
def __init__(self, *args): BaseWidget.__init__(self, *args) # Hardware objects ---------------------------------------------------- self.beam_align_hwobj = None # Internal values ----------------------------------------------------- # Properties ---------------------------------------------------------- self.add_property("mnemonic", "string", "") # Signals ------------------------------------------------------------ # Slots --------------------------------------------------------------- # Graphic elements ---------------------------------------------------- self.group_box = qt_import.QGroupBox("Beam align", self) self.align_button = qt_import.QPushButton("Align", self.group_box) # Layout -------------------------------------------------------------- _group_box_vlayout = qt_import.QVBoxLayout(self.group_box) _group_box_vlayout.addWidget(self.align_button) _group_box_vlayout.addStretch() _group_box_vlayout.setSpacing(0) _group_box_vlayout.setContentsMargins(0, 0, 0, 0) _main_vlayout = qt_import.QVBoxLayout(self) _main_vlayout.addWidget(self.group_box) _main_vlayout.setSpacing(0) _main_vlayout.setContentsMargins(2, 2, 2, 2) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ self.align_button.clicked.connect(self.align_beam_clicked)
def __init__(self, *args): """MotorBrick constructor Arguments: :params args: """ super(MotorBrick, self).__init__(*args) # Hardware objects ---------------------------------------------------- self.motor_hwobj = None # hardware object self.control_dialog = None # Graphic elements----------------------------------------------------- self.frame = qt_import.QGroupBox() self.frame_layout = qt_import.QVBoxLayout() self.step_slider_panel = qt_import.QWidget() step_slider_panel_layout = qt_import.QHBoxLayout() self.move_box = MoveBox() self.step_backward = StepEditor(StepEditor.LEFT_LAYOUT, 20, None, "new step:", "-") self.slider = MotorSlider() self.step_forward = StepEditor(StepEditor.RIGHT_LAYOUT, 20, None, "new step:", "+") self.motor_position_label = self.slider.current_label self.name_position_box = qt_import.QFrame() self.name_position_box_layout = qt_import.QHBoxLayout() self.motor_name_label = qt_import.QLabel() self.position_label = qt_import.QLabel() # Layout -------------------------------------------------------------- step_slider_panel_layout.addWidget(self.step_backward) step_slider_panel_layout.addWidget(self.slider) step_slider_panel_layout.addWidget(self.step_forward) self.step_slider_panel.setLayout(step_slider_panel_layout) self.frame_layout.addWidget(self.step_slider_panel) self.frame_layout.addWidget(self.move_box, 0, qt_import.Qt.AlignCenter) self.frame.setLayout(self.frame_layout) self.name_position_box_layout.addWidget(self.motor_name_label) self.name_position_box_layout.addWidget(self.position_label) self.name_position_box.setLayout(self.name_position_box_layout) self.setSizePolicy(qt_import.QSizePolicy.Minimum, qt_import.QSizePolicy.Fixed) self.frame.setFlat(False) # Hide 'edit step' button associated to step_backward self.step_backward.allow_change_value(False) self.step_slider_panel.setSizePolicy(qt_import.QSizePolicy.Minimum, qt_import.QSizePolicy.Fixed) self.name_position_box.hide() self.name_position_box.setSizePolicy(qt_import.QSizePolicy.Expanding, qt_import.QSizePolicy.Fixed) self.name_position_box.setFrameStyle(qt_import.QFrame.Panel | qt_import.QFrame.Raised) self.name_position_box.setLineWidth(1) self.name_position_box.setMidLineWidth(0) self.motor_name_label.setAlignment(qt_import.Qt.AlignLeft | qt_import.Qt.AlignVCenter) self.position_label.setAlignment(qt_import.Qt.AlignRight | qt_import.Qt.AlignVCenter) self.main_layout = qt_import.QVBoxLayout() self.main_layout.addWidget(self.name_position_box, 0, qt_import.Qt.AlignTop) self.main_layout.addWidget(self.frame, 0, qt_import.Qt.AlignCenter) self.setLayout(self.main_layout) # Qt signal/slot connections ----------------------------------------- self.move_box.move_motor_signal.connect(self.move_motor) self.move_box.stop_motor_signal.connect(self.stop_motor) self.step_forward.clicked_signal.connect(self.step_forward_clicked) self.step_forward.value_changed_signal.connect( self.step_forward_value_changed) self.step_backward.clicked_signal.connect(self.step_backward_clicked) # define properties self.add_property("appearance", "combo", ("tiny", "normal"), "normal") self.add_property("allowConfigure", "boolean", True) self.add_property("mnemonic", "string", "") self.add_property("allowDoubleClick", "boolean", False) self.add_property("formatString", "formatString", "+##.####") # %+8.4f self.add_property("dialogCaption", "string", "", hidden=True)
def __init__(self, parent=None, name="xrf_spectrum_parameters_widget"): qt_import.QWidget.__init__(self, parent) if name is not None: self.setObjectName(name) # Internal variables -------------------------------------------------- self.xrf_spectrum_model = queue_model_objects.XRFSpectrum() self._tree_view_item = None # Graphic elements ---------------------------------------------------- _top_widget = qt_import.QWidget(self) _parameters_widget = qt_import.QWidget(_top_widget) self.data_path_widget = DataPathWidget(_parameters_widget) self.other_parameters_gbox = qt_import.QGroupBox( "Other parameters", _parameters_widget) self.count_time_label = qt_import.QLabel("Count time:", self.other_parameters_gbox) self.count_time_ledit = qt_import.QLineEdit(self.other_parameters_gbox) self.count_time_ledit.setFixedWidth(50) self.adjust_transmission_cbox = qt_import.QCheckBox( "Adjust transmission", self.other_parameters_gbox) self.adjust_transmission_cbox.hide() self.mca_spectrum_widget = McaSpectrumWidget(self) self.snapshot_widget = SnapshotWidget(self) # Layout ------------------------------------------------------------- _other_parameters_gbox_hlayout = qt_import.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 = qt_import.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 = qt_import.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 = qt_import.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(qt_import.QSizePolicy.Expanding, qt_import.QSizePolicy.Expanding) _top_widget.setSizePolicy(qt_import.QSizePolicy.Expanding, qt_import.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 --------------------------------------------------------------- self.data_path_widget.data_path_layout.compression_cbox.setVisible( False) if HWR.beamline.xrf_spectrum is not None: HWR.beamline.xrf_spectrum.connect("xrfSpectrumFinished", self.spectrum_finished)
def __init__(self, *args): BaseWidget.__init__(self, *args) # variables ----------------------------------------------------------- self.y_calib = None # metres/pixel self.z_calib = None # metres/pixel self.current_zoom_pos_name = None self.multipos_file_xml_path = None self.table_created = False # Hardware objects ---------------------------------------------------- self.multipos_hwobj = None self.h_motor_hwobj = None self.v_motor_hwobj = None # Properties ---------------------------------------------------------- self.add_property("zoom", "string", "") self.add_property("vertical motor", "string", "") self.add_property("horizontal motor", "string", "") # Signals ------------------------------------------------------------ # Graphic elements ---------------------------------------------------- self.main_groupbox = qt_import.QGroupBox("Pixel Size Calibration", self) self.ui_widgets_manager = qt_import.load_ui_file( "camera_calibration.ui") # Size policy -------------------------------- self.ui_widgets_manager.calibration_table.setSizePolicy( qt_import.QSizePolicy.Minimum, qt_import.QSizePolicy.Minimum, ) # Layout -------------------------------------------------------------- _groupbox_vlayout = qt_import.QVBoxLayout(self) _groupbox_vlayout.addWidget(self.ui_widgets_manager) _groupbox_vlayout.setSpacing(0) _groupbox_vlayout.setContentsMargins(0, 0, 0, 0) self.main_groupbox.setLayout(_groupbox_vlayout) _main_vlayout = qt_import.QVBoxLayout(self) _main_vlayout.addWidget(self.main_groupbox) _main_vlayout.setSpacing(0) _main_vlayout.setContentsMargins(0, 0, 0, 0) self.setLayout(_main_vlayout) # Qt signal/slot connections ------------------------------------------ self.ui_widgets_manager.save_calibration_pushbutton.clicked.connect( self.save_new_calibration_value) self.ui_widgets_manager.start_new_calibration_pushbutton.clicked.connect( self.start_new_calibration) self.ui_widgets_manager.cancel_calibration_pushbutton.clicked.connect( self.cancel_calibration) # Other hardware object connections -------------------------- self.connect( HWR.beamline.diffractometer, "new_calibration_done", self.diffractometer_manual_calibration_done, )
def __init__(self, *args): """ Based on BaseWidget :param args: """ BaseWidget.__init__(self, *args) # Hardware objects ---------------------------------------------------- # Internal values ----------------------------------------------------- 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.add_property("hwobj_motors_list", "string", "") self.add_property("icon_list", "string", "") self.add_property("defaultSteps", "string", "") self.add_property("defaultDeltas", "string", "") self.add_property("defaultDecimals", "string", "") self.add_property("enableCenterBeam", "boolean", True) self.add_property("enableMeasureFlux", "boolean", True) self.add_property("compactView", "boolean", False) self.add_property("alwaysEnableBeamPositioning", "boolean", False) # Signals ------------------------------------------------------------- # Slots --------------------------------------------------------------- # Graphic elements ---------------------------------------------------- self.main_group_box = qt_import.QGroupBox(self) self.unf_hor_motor_brick = MotorSpinboxBrick(self.main_group_box) self.unf_ver_motor_brick = MotorSpinboxBrick(self.main_group_box) self.double_hor_motor_brick = MotorSpinboxBrick(self.main_group_box) self.double_ver_motor_brick = 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 = qt_import.QPushButton(self.main_group_box) self.center_beam_button.setFixedSize(27, 27) self.measure_flux_button = qt_import.QPushButton(self.main_group_box) self.measure_flux_button.setFixedSize(27, 27) # Layout -------------------------------------------------------------- _gbox_grid_layout = qt_import.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 = qt_import.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.set_label("Horizontal") self.unf_ver_motor_brick.set_label("Vertical") self.double_hor_motor_brick.set_label("Horizontal") self.double_ver_motor_brick.set_label("Vertical") self.unf_hor_motor_brick.setEnabled(False) self.unf_ver_motor_brick.setEnabled(False) 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(icons.load_icon("QuickRealign")) self.measure_flux_button.setToolTip("Measure flux") self.measure_flux_button.setIcon(icons.load_icon("Sun")) self.connect(HWR.beamline.diffractometer, "minidiffPhaseChanged", self.phase_changed) if HWR.beamline.beam.definer is not None: self.connect( HWR.beamline.beam.definer, "focusingModeChanged", self.focus_mode_changed, ) mode, beam_size = HWR.beamline.beam.definer.get_active_focus_mode() self.focus_mode_changed(mode, beam_size) self.update_gui()
def __init__(self, *args): BaseWidget.__init__(self, *args) # Hardware objects ---------------------------------------------------- self.slitbox_hwobj = None # Internal values ----------------------------------------------------- # Properties ---------------------------------------------------------- self.add_property("mnemonic", "string", "") self.add_property("formatString", "formatString", "###") # Signals ------------------------------------------------------------ # Slots --------------------------------------------------------------- # Graphic elements ---------------------------------------------------- self.main_gbox = qt_import.QGroupBox("Slits", self) # h hor_label = qt_import.QLabel("Horizontal:", self.main_gbox) self.current_hor_pos_ledit = qt_import.QLineEdit(self.main_gbox) self.current_hor_pos_ledit.setAlignment(qt_import.Qt.AlignRight) boldFont = self.current_hor_pos_ledit.font() boldFont.setBold(True) self.current_hor_pos_ledit.setFont(boldFont) self.current_hor_pos_ledit.setMaximumWidth(120) self.current_hor_pos_ledit.setEnabled(False) self.hor_pos_dspinbox = qt_import.QSpinBox(self.main_gbox) # self.hor_pos_dspinbox.setMaximumWidth(120) # self.hor_pos_dspinbox.setEnabled(False) self.set_hor_gap_button = qt_import.QPushButton( icons.load_icon("Draw"), "", self.main_gbox) # self.set_hor_gap_button.setEnabled(False) self.set_hor_gap_button.setFixedSize(27, 27) self.stop_hor_button = qt_import.QPushButton(icons.load_icon("Stop2"), "", self.main_gbox) self.stop_hor_button.setEnabled(False) self.stop_hor_button.setFixedSize(27, 27) # Vertical gap ver_label = qt_import.QLabel("Vertical:", self.main_gbox) self.current_ver_pos_ledit = qt_import.QLineEdit(self.main_gbox) self.current_ver_pos_ledit.setAlignment(qt_import.Qt.AlignRight) self.current_ver_pos_ledit.setFont(boldFont) self.current_ver_pos_ledit.setMaximumWidth(120) self.current_ver_pos_ledit.setEnabled(False) self.ver_pos_dspinbox = qt_import.QSpinBox(self.main_gbox) # self.ver_pos_dspinbox.setMaximumWidth(70) # self.ver_pos_dspinbox.setEnabled(False) self.set_ver_gap_button = qt_import.QPushButton( icons.load_icon("Draw"), "", self.main_gbox) # self.set_ver_gap_button.setEnabled(False) self.set_ver_gap_button.setFixedSize(27, 27) self.stop_ver_button = qt_import.QPushButton(icons.load_icon("Stop2"), "", self.main_gbox) self.stop_ver_button.setEnabled(False) self.stop_ver_button.setFixedSize(27, 27) self.test_button = qt_import.QPushButton("Test", self.main_gbox) self.test_button.hide() # Layout -------------------------------------------------------------- _main_gbox_gridlayout = qt_import.QGridLayout(self.main_gbox) _main_gbox_gridlayout.addWidget(hor_label, 0, 0) _main_gbox_gridlayout.addWidget(self.current_hor_pos_ledit, 0, 1) _main_gbox_gridlayout.addWidget(self.hor_pos_dspinbox, 0, 2) _main_gbox_gridlayout.addWidget(self.set_hor_gap_button, 0, 3) _main_gbox_gridlayout.addWidget(self.stop_hor_button, 0, 4) _main_gbox_gridlayout.addWidget(ver_label, 1, 0) _main_gbox_gridlayout.addWidget(self.current_ver_pos_ledit, 1, 1) _main_gbox_gridlayout.addWidget(self.ver_pos_dspinbox, 1, 2) _main_gbox_gridlayout.addWidget(self.set_ver_gap_button, 1, 3) _main_gbox_gridlayout.addWidget(self.stop_ver_button, 1, 4) _main_gbox_gridlayout.setSpacing(2) _main_gbox_gridlayout.setContentsMargins(0, 0, 0, 0) _main_gbox_gridlayout.addWidget(self.test_button, 0, 5) _main_vlayout = qt_import.QVBoxLayout(self) _main_vlayout.addWidget(self.main_gbox) _main_vlayout.setSpacing(0) _main_vlayout.setContentsMargins(2, 2, 2, 2) # Qt signal/slot connections ------------------------------------------ hor_spinbox_event = SpinBoxEvent(self.hor_pos_dspinbox) self.hor_pos_dspinbox.installEventFilter(hor_spinbox_event) hor_spinbox_event.returnPressedSignal.connect(self.change_hor_gap) self.hor_pos_dspinbox.lineEdit().textChanged.connect( self.hor_gap_edited) self.set_hor_gap_button.clicked.connect(self.change_hor_gap) self.stop_hor_button.clicked.connect(self.stop_hor_clicked) ver_spinbox_event = SpinBoxEvent(self.ver_pos_dspinbox) self.ver_pos_dspinbox.installEventFilter(ver_spinbox_event) ver_spinbox_event.returnPressedSignal.connect(self.change_ver_gap) self.ver_pos_dspinbox.lineEdit().textChanged.connect( self.ver_gap_edited) self.ver_pos_dspinbox.lineEdit().returnPressed.connect( self.change_ver_gap) self.set_ver_gap_button.clicked.connect(self.change_ver_gap) self.stop_ver_button.clicked.connect(self.stop_ver_clicked) self.test_button.clicked.connect(self.test_clicked) # SizePolicies -------------------------------------------------------- # Other --------------------------------------------------------------- self.current_hor_pos_ledit.setToolTip("Current horizontal gap size") self.set_hor_gap_button.setToolTip("Set new horizontal gap size") self.stop_hor_button.setToolTip("Stop horizontal slits movements") self.current_ver_pos_ledit.setToolTip("Current vertical gap size") self.set_ver_gap_button.setToolTip("Set new vertical gap size") self.stop_ver_button.setToolTip("Stop vertical slits movements")
def __init__(self, *args): BaseWidget.__init__(self, *args) # Hardware objects ---------------------------------------------------- self.wrapper_hwobj = None # Internal values ----------------------------------------------------- self.__expertMode = False # Properties ---------------------------------------------------------- self.add_property("mnemonic", "string", "") self.add_property("forceNoControl", "boolean", False) self.add_property("expertModeControlOnly", "boolean", False) self.add_property("icons", "string", "") self.add_property("in", "string", "in") self.add_property("out", "string", "out") self.add_property("setin", "string", "Set in") self.add_property("setout", "string", "Set out") self.add_property("username", "string", "") # Signals ------------------------------------------------------------- # Slots --------------------------------------------------------------- self.define_slot("allowControl", ()) # Graphic elements ---------------------------------------------------- self.main_gbox = qt_import.QGroupBox("none", self) self.main_gbox.setAlignment(qt_import.Qt.AlignCenter) self.state_ledit = qt_import.QLineEdit("unknown", self.main_gbox) self.buttons_widget = qt_import.QWidget(self.main_gbox) self.set_in_button = qt_import.QPushButton("Set in", self.buttons_widget) self.set_in_button.setCheckable(True) self.set_out_button = qt_import.QPushButton("Set out", self.buttons_widget) self.set_out_button.setCheckable(True) # Layout -------------------------------------------------------------- _buttons_widget_hlayout = qt_import.QHBoxLayout(self.buttons_widget) _buttons_widget_hlayout.addWidget(self.set_in_button) _buttons_widget_hlayout.addWidget(self.set_out_button) _buttons_widget_hlayout.setSpacing(0) _buttons_widget_hlayout.setContentsMargins(0, 0, 0, 0) _main_gbox_vlayout = qt_import.QVBoxLayout(self.main_gbox) _main_gbox_vlayout.addWidget(self.state_ledit) _main_gbox_vlayout.addWidget(self.buttons_widget) _main_gbox_vlayout.setSpacing(2) _main_gbox_vlayout.setContentsMargins(4, 4, 4, 4) _main_vlayout = qt_import.QVBoxLayout(self) _main_vlayout.addWidget(self.main_gbox) _main_vlayout.setSpacing(0) _main_vlayout.setContentsMargins(0, 0, 0, 0) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ self.set_in_button.toggled.connect(self.set_in) self.set_out_button.toggled.connect(self.set_out) # Other --------------------------------------------------------------- self.state_ledit.setAlignment(qt_import.Qt.AlignCenter) self.state_ledit.setToolTip("Shows the current control state") self.state_ledit.setFrame(False) bold_font = self.state_ledit.font() bold_font.setBold(True) self.state_ledit.setFont(bold_font) self.state_ledit.setFixedHeight(24) self.set_in_button.setToolTip("Changes the control state") self.set_out_button.setToolTip("Changes the control state") self.instance_synchronize("state_ledit")
def __init__(self, parent=None, name=None, fl=0): CreateTaskBase.__init__(self, parent, name, fl, "Energy scan") if not name: self.setObjectName("create_energy_scan_widget") # Hardware objects ---------------------------------------------------- # Internal variables -------------------------------------------------- self.init_models() # Graphic elements ---------------------------------------------------- self._periodic_table_widget = PeriodicTableWidget(self) self._data_path_widget = DataPathWidget(self, data_model=self._path_template, layout="vertical") _parameters_gbox = qt_import.QGroupBox("Parameters", self) self._adjust_transmission_cbox = qt_import.QCheckBox( "Adjust transmission", _parameters_gbox) self._adjust_transmission_cbox.setChecked(False) self._adjust_transmission_cbox.setEnabled(True) self._max_transmission_label = qt_import.QLabel( "Maximum transmission:") self._max_transmission_ledit = qt_import.QLineEdit( "20", _parameters_gbox) self._max_transmission_ledit.setFixedWidth(80) self._max_transmission_ledit.setEnabled(False) self._comments_widget = CommentsWidget(self) # Layout -------------------------------------------------------------- _parameters_gbox_hlayout = qt_import.QGridLayout(_parameters_gbox) _parameters_gbox_hlayout.addWidget(self._adjust_transmission_cbox, 0, 0) _parameters_gbox_hlayout.addWidget(self._max_transmission_label, 1, 0) _parameters_gbox_hlayout.addWidget(self._max_transmission_ledit, 1, 1) _parameters_gbox_hlayout.setColumnStretch(2, 1) _parameters_gbox_hlayout.setSpacing(2) _main_vlayout = qt_import.QVBoxLayout(self) _main_vlayout.addWidget(self._periodic_table_widget) _main_vlayout.addWidget(self._data_path_widget) _main_vlayout.addWidget(_parameters_gbox) _main_vlayout.addWidget(self._comments_widget) _main_vlayout.setContentsMargins(2, 2, 2, 2) _main_vlayout.setSpacing(6) _main_vlayout.addStretch(10) # SizePolicies -------------------------------------------------------- self._comments_widget.setFixedHeight(100) # Qt signal/slot connections ------------------------------------------ # self._periodic_table_widget.elementEdgeSelectedSignal.connect(\ # self.acq_parameters_changed) self._data_path_widget.pathTemplateChangedSignal.connect( self.path_template_changed) self._adjust_transmission_cbox.stateChanged.connect( self.adjust_transmission_state_changed) self._max_transmission_ledit.textEdited.connect( self.max_transmission_value_changed) self._data_path_widget.data_path_layout.compression_cbox.setVisible( False) try: self._periodic_table_widget.set_elements( HWR.beamline.energy_scan.get_elements()) max_transmission_value = ( HWR.beamline.energy_scan.get_max_transmission_value()) self._adjust_transmission_cbox.setEnabled(True) self._adjust_transmission_cbox.setChecked(True) HWR.beamline.energy_scan.adjust_transmission(True) if max_transmission_value: self._max_transmission_ledit.setText("%.2f" % max_transmission_value) except BaseException: pass
def __init__(self, *args): """VolpiBrick constructor Arguments: :params args: """ super(VolpiBrick, self).__init__(*args) # Hardware objects ---------------------------------------------------- self.volpi_hwobj = None # hardware object # Graphic elements----------------------------------------------------- self.frame = qt_import.QGroupBox() self.frame_layout = qt_import.QVBoxLayout() self.power_bar = PowerBar([ "#5e4fa2", "#3288bd", "#66c2a5", "#abdda4", "#e6f598", "#ffffbf", "#fee08b", "#fdae61", "#f46d43", "#d53e4f", "#9e0142", "#006837", "#1a9850", "#66bd63", "#a6d96a", "#d9ef8b", "#ffffbf", "#fee08b", "#fdae61", "#f46d43", "#d73027", "#a50026" ]) self.power_bar.setMinimum(0) self.power_bar.setMaximum(100) self.power_bar.setSingleStep(1) self.power_bar.setNotchesVisible(True) self.position_spinbox = qt_import.QSpinBox() self.position_spinbox.setMinimum(0) self.position_spinbox.setMaximum(100) self.position_spinbox.setFixedSize(75, 27) self.step_button = qt_import.QPushButton() self.step_button_icon = icons.load_icon("TileCascade2") self.step_button.setIcon(self.step_button_icon) self.step_button.setToolTip("Changes the volpi step") self.step_button.setFixedSize(27, 27) # Layout -------------------------------------------------------------- self.frame_layout.addWidget(self.power_bar) self.frame.setLayout(self.frame_layout) self.main_layout = qt_import.QHBoxLayout() self.main_layout.addWidget(self.frame, 0, qt_import.Qt.AlignCenter) self.main_layout.addWidget(self.position_spinbox) self.main_layout.addWidget(self.step_button) self.setLayout(self.main_layout) # Qt signal/slot connections ----------------------------------------- self.power_bar.value_changed.connect(self.value_changed) self.position_spinbox.valueChanged.connect(self.value_changed) self.step_button.clicked.connect(self.open_step_editor) # define properties self.add_property("mnemonic", "string", "") self.add_property("showBar", "boolean", False) self.add_property("showDial", "boolean", False) self.add_property("showStep", "boolean", True) self.add_property("stepValue", "string", 5) # Internal values ----------------------------------------------------- self.step_editor = None self.move_step = 1 # slots ------------------------------------------- self.define_slot("zoom_changed", ())
def __init__(self, *args): BaseWidget.__init__(self, *args) # Internal values ----------------------------------------------------- self.resolution_limits = None self.detector_distance_limits = None self.door_interlocked = True # Properties ---------------------------------------------------------- self.add_property("defaultMode", "combo", ("Ang", "mm"), "Ang") self.add_property("mmFormatString", "formatString", "###.##") self.add_property("angFormatString", "formatString", "##.###") self.group_box = qt_import.QGroupBox("Resolution", self) current_label = qt_import.QLabel("Current:", self.group_box) current_label.setFixedWidth(75) self.resolution_ledit = qt_import.QLineEdit(self.group_box) self.resolution_ledit.setReadOnly(True) self.detector_distance_ledit = qt_import.QLineEdit(self.group_box) self.detector_distance_ledit.setReadOnly(True) _new_value_widget = qt_import.QWidget(self) set_to_label = qt_import.QLabel("Set to:", self.group_box) self.new_value_ledit = qt_import.QLineEdit(self.group_box) self.units_combobox = qt_import.QComboBox(_new_value_widget) self.stop_button = qt_import.QPushButton(_new_value_widget) self.stop_button.setIcon(icons.load_icon("Stop2")) self.stop_button.setEnabled(False) self.stop_button.setFixedWidth(25) # Layout -------------------------------------------------------------- _new_value_widget_hlayout = qt_import.QHBoxLayout(_new_value_widget) _new_value_widget_hlayout.addWidget(self.new_value_ledit) _new_value_widget_hlayout.addWidget(self.units_combobox) _new_value_widget_hlayout.addWidget(self.stop_button) _new_value_widget_hlayout.setSpacing(0) _new_value_widget_hlayout.setContentsMargins(0, 0, 0, 0) _group_box_gridlayout = qt_import.QGridLayout(self.group_box) _group_box_gridlayout.addWidget(current_label, 0, 0, 2, 1) _group_box_gridlayout.addWidget(self.resolution_ledit, 0, 1) _group_box_gridlayout.addWidget(self.detector_distance_ledit, 1, 1) _group_box_gridlayout.addWidget(set_to_label, 2, 0) _group_box_gridlayout.addWidget(_new_value_widget, 2, 1) _group_box_gridlayout.setSpacing(0) _group_box_gridlayout.setContentsMargins(1, 1, 1, 1) _main_vlayout = qt_import.QVBoxLayout(self) _main_vlayout.setSpacing(0) _main_vlayout.setContentsMargins(0, 0, 2, 2) _main_vlayout.addWidget(self.group_box) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ self.new_value_ledit.returnPressed.connect(self.current_value_changed) self.new_value_ledit.textChanged.connect(self.input_field_changed) self.units_combobox.activated.connect(self.unit_changed) self.stop_button.clicked.connect(self.stop_clicked) # Other --------------------------------------------------------------- colors.set_widget_color(self.new_value_ledit, colors.LINE_EDIT_ACTIVE, qt_import.QPalette.Base) self.new_value_validator = qt_import.QDoubleValidator( 0, 15, 4, self.new_value_ledit) self.units_combobox.addItem(chr(197)) self.units_combobox.addItem("mm") self.instance_synchronize( "group_box", "resolution_ledit", "detector_distance_ledit", "new_value_ledit", "units_combobox", )