def __init__(self, parent=None, name="scan_plot_widget"): qt_import.QWidget.__init__(self, parent) if name is not None: self.setObjectName(name) self.xdata = [] self.ylabel = "" self.isRealTimePlot = None self.is_connected = None self.isScanning = None self.lblTitle = qt_import.QLabel(self) self.lblPosition = qt_import.QLabel(self) self.graph = QtBlissGraph(self) self.graph.canvas().setMouseTracking(True) self.graph.enableLegend(False) self.graph.enableZoom(False) _main_vlayout = qt_import.QVBoxLayout(self) _main_vlayout.addWidget(self.lblTitle) _main_vlayout.addWidget(self.lblPosition) _main_vlayout.addWidget(self.graph) _main_vlayout.setSpacing(2) _main_vlayout.setContentsMargins(0, 0, 0, 0)
def __init__(self, *args): qt_import.QWidget.__init__(self, *args) self.value_plot = None self.title_label = qt_import.QLabel(self) self.value_widget = qt_import.QWidget(self) self.value_label = qt_import.QLabel(self.value_widget) self.value_label.setAlignment(qt_import.Qt.AlignCenter) self.history_button = qt_import.QPushButton( icons.load_icon("LineGraph"), "", self.value_widget) self.history_button.hide() self.history_button.setFixedWidth(22) self.history_button.setFixedHeight(22) _value_widget_hlayout = qt_import.QHBoxLayout(self.value_widget) _value_widget_hlayout.addWidget(self.value_label) _value_widget_hlayout.addWidget(self.history_button) _value_widget_hlayout.setSpacing(2) _value_widget_hlayout.setContentsMargins(0, 0, 0, 0) self.main_vlayout = qt_import.QVBoxLayout(self) self.main_vlayout.addWidget(self.title_label) self.main_vlayout.addWidget(self.value_widget) self.main_vlayout.setSpacing(1) self.main_vlayout.setContentsMargins(0, 0, 0, 0) self.history_button.clicked.connect(self.open_history_view)
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, flags=0): qt_import.QWidget.__init__(self, parent, qt_import.Qt.WindowFlags(flags)) if not name: self.setObjectName("RadiationDamageWidgetLayout") # Hardware objects ---------------------------------------------------- # Internal variables -------------------------------------------------- # Graphic elements ---------------------------------------------------- self.rad_damage_cbx = qt_import.QCheckBox(self) _label_widget = qt_import.QWidget(self) self.burn_osc_start_label = qt_import.QLabel(_label_widget) self.burn_osc_start_ledit = qt_import.QLineEdit(_label_widget) self.burn_osc_start_ledit.setMinimumSize(50, 0) self.burn_osc_start_ledit.setMaximumSize(50, 32767) _value_widget = qt_import.QWidget(self) self.burn_osc_interval_label = qt_import.QLabel(_value_widget) self.burn_osc_interval_ledit = qt_import.QLineEdit(_value_widget) self.burn_osc_interval_ledit.setMinimumSize(50, 0) self.burn_osc_interval_ledit.setMaximumSize(50, 32767) # Layout -------------------------------------------------------------- _label_widget_hlayout = qt_import.QHBoxLayout(self) _label_widget_hlayout.addWidget(self.burn_osc_start_label) _label_widget_hlayout.addWidget(self.burn_osc_start_ledit) _label_widget_hlayout.addStretch(0) _label_widget_hlayout.setSpacing(0) _label_widget_hlayout.setContentsMargins(0, 0, 0, 0) _label_widget.setLayout(_label_widget_hlayout) _value_hlayout = qt_import.QHBoxLayout(self) _value_hlayout.addWidget(self.burn_osc_interval_label) _value_hlayout.addWidget(self.burn_osc_interval_ledit) _value_hlayout.addStretch(0) _value_hlayout.setSpacing(0) _value_hlayout.setContentsMargins(0, 0, 0, 0) _value_widget.setLayout(_value_hlayout) _main_vlayout = qt_import.QVBoxLayout(self) _main_vlayout.addWidget(self.rad_damage_cbx) _main_vlayout.addWidget(_label_widget) _main_vlayout.addWidget(_value_widget) _main_vlayout.addStretch(0) _main_vlayout.setSpacing(0) _main_vlayout.setContentsMargins(0, 0, 0, 0) self.setLayout(_main_vlayout) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ # Other --------------------------------------------------------------- self.languageChange()
def __init__(self, parent, email_addresses, tab_label): qt_import.QWidget.__init__(self, parent) # Hardware objects ---------------------------------------------------- # Internal values ----------------------------------------------------- self.tab_label = tab_label self.unread_messages = 0 self.email_addresses = email_addresses self.from_email_address = None msg = [ "Feel free to report any comment about this software;", " an email will be sent to the people concerned.", "Do not forget to put your name or email address if you require an answer.", ] # Properties ---------------------------------------------------------- # Signals ------------------------------------------------------------ # Slots --------------------------------------------------------------- # Graphic elements ---------------------------------------------------- __label = qt_import.QLabel("<b>%s</b>" % "\n".join(msg), self) __msg_label = qt_import.QLabel("Message:", self) self.submit_button = qt_import.QToolButton(self) self.message_textedit = qt_import.QTextEdit(self) # Layout -------------------------------------------------------------- _main_vlayout = qt_import.QVBoxLayout(self) _main_vlayout.addWidget(__label) _main_vlayout.addWidget(__msg_label) _main_vlayout.addWidget(self.message_textedit) _main_vlayout.addWidget(self.submit_button) _main_vlayout.setSpacing(0) _main_vlayout.setContentsMargins(2, 2, 2, 2) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ self.submit_button.clicked.connect(self.submit_message) # Other --------------------------------------------------------------- self.message_textedit.setToolTip( "Write here your comments or feedback") self.submit_button.setText("Submit") # if hasattr(self.submit_button, "setUsesTextLabel"): # self.submit_button.setUsesTextLabel(True) # elif hasattr(self.submit_button, "setToolButtonStyle"): # self.submit_button.setToolButtonStyle(Qt.ToolButtonTextUnderIcon) self.submit_button.setToolButtonStyle(True) self.submit_button.setIcon(icons.load_icon("Envelope")) self.submit_button.setToolTip("Click here to send your feedback " + "to the authors of this software")
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, parent): qt_import.QDialog.__init__(self, parent) # Graphic elements----------------------------------------------------- # self.main_gbox = QtGui.QGroupBox('Motor step', self) # box2 = QtGui.QWidget(self) self.grid = qt_import.QWidget(self) label1 = qt_import.QLabel("Current:", self) self.current_step = qt_import.QLineEdit(self) self.current_step.setEnabled(False) label2 = qt_import.QLabel("Set to:", self) self.new_step = qt_import.QLineEdit(self) self.new_step.setAlignment(qt_import.Qt.AlignRight) self.new_step.setValidator(qt_import.QDoubleValidator(self)) self.button_box = qt_import.QWidget(self) self.apply_button = qt_import.QPushButton("Apply", self.button_box) self.close_button = qt_import.QPushButton("Dismiss", self.button_box) # Layout -------------------------------------------------------------- self.button_box_layout = qt_import.QHBoxLayout(self.button_box) self.button_box_layout.addWidget(self.apply_button) self.button_box_layout.addWidget(self.close_button) self.grid_layout = qt_import.QGridLayout(self.grid) self.grid_layout.addWidget(label1, 0, 0) self.grid_layout.addWidget(self.current_step, 0, 1) self.grid_layout.addWidget(label2, 1, 0) self.grid_layout.addWidget(self.new_step, 1, 1) self.main_layout = qt_import.QVBoxLayout(self) self.main_layout.addWidget(self.grid) self.main_layout.addWidget(self.button_box) self.main_layout.setSpacing(0) self.main_layout.setContentsMargins(0, 0, 0, 0) # Qt signal/slot connections ----------------------------------------- self.new_step.returnPressed.connect(self.apply_clicked) self.apply_button.clicked.connect(self.apply_clicked) self.close_button.clicked.connect(self.accept) # SizePolicies -------------------------------------------------------- self.close_button.setSizePolicy(qt_import.QSizePolicy.Fixed, qt_import.QSizePolicy.Fixed) self.setSizePolicy(qt_import.QSizePolicy.Minimum, qt_import.QSizePolicy.Minimum) # Other --------------------------------------------------------------- self.setWindowTitle("Motor step editor") self.apply_button.setIcon(icons.load_icon("Check")) self.close_button.setIcon(icons.load_icon("Delete"))
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, parent, realtime_plot=False): qt_import.QWidget.__init__(self, parent) self.axis_x_array = [] self.axis_y_array = [] self.realtime_plot = realtime_plot self.pymca_graph = Plot(self) self.pymca_graph.showGrid() self.info_label = qt_import.QLabel("", self) self.info_label.setAlignment(qt_import.Qt.AlignRight) _main_vlayout = qt_import.QVBoxLayout(self) _main_vlayout.addWidget(self.pymca_graph) _main_vlayout.addWidget(self.info_label) _main_vlayout.setSpacing(2) _main_vlayout.setContentsMargins(2, 2, 2, 2) self.setSizePolicy(qt_import.QSizePolicy.Expanding, qt_import.QSizePolicy.Expanding) if PYMCA_EXISTS: qt_import.QObject.connect( self.pymca_graph, qt_import.SIGNAL("QtBlissGraphSignal"), self.handle_graph_signal, ) colors.set_widget_color(self, colors.WHITE)
def __init__(self, *args): BaseWidget.__init__(self, *args) # Hardware objects ---------------------------------------------------- # Internal values ----------------------------------------------------- self.use_dialog = False # Properties ---------------------------------------------------------- self.add_property("mnemonicList", "string", "") # Signals ------------------------------------------------------------ # Slots --------------------------------------------------------------- # Graphic elements ---------------------------------------------------- self.progress_type_label = qt_import.QLabel("", self) self.progress_bar = qt_import.QProgressBar(self) # $self.progress_bar.setCenterIndicator(True) self.progress_bar.setMinimum(0) main_layout = qt_import.QVBoxLayout(self) main_layout.addWidget(self.progress_type_label) main_layout.addWidget(self.progress_bar) main_layout.setContentsMargins(2, 2, 2, 2) main_layout.setSpacing(2) self.setEnabled(False) new_palette = qt_import.QPalette() new_palette.setColor(qt_import.QPalette.Highlight, colors.DARK_GREEN) self.progress_bar.setPalette(new_palette)
def __init__(self, fields, parent=None): qt_import.QWidget.__init__(self, parent) self.field_widgets = list() qt_import.QGridLayout(self) self.setSizePolicy( qt_import.QSizePolicy.Expanding, qt_import.QSizePolicy.Expanding ) current_row = 0 col_incr = 0 pad = "" for field in fields: # should not happen but lets just skip them if field["type"] != "message" and "uiLabel" not in field: continue # hack until the 'real' xml gets implemented server side # and this mess gets rewritten if field["type"] == "message": logging.debug("creating widget with options: %s", field) widget = make_widget(self, field) # message will be alone in the layout # so that will not fsck up the layout self.layout().addWidget(widget, current_row, current_row, 0, 1) else: logging.debug("creating widget with options: %s", field) widget = make_widget(self, field) # Temporary (like this brick ...) hack to get a nicer UI if isinstance(widget, TextEdit): widget.setSizePolicy( qt_import.QSizePolicy.MinimumExpanding, qt_import.QSizePolicy.Minimum, ) else: widget.setSizePolicy( qt_import.QSizePolicy.Fixed, qt_import.QSizePolicy.Fixed ) self.field_widgets.append(widget) if field["type"] == "boolean": self.layout().addWidget( widget, current_row, 0 + col_incr, 1, 2, qt_import.Qt.AlignLeft ) else: label = qt_import.QLabel(pad + field["uiLabel"], self) self.layout().addWidget( label, current_row, 0 + col_incr, qt_import.Qt.AlignLeft ) self.layout().addWidget( widget, current_row, 1 + col_incr, qt_import.Qt.AlignLeft ) current_row += 1 if field.pop("NEW_COLUMN", False): # Increment column col_incr += 2 current_row = 0 pad = " " * 5 self.update()
def __init__(self, parent=None): """" Constructor of MotorSlider :param parent: sliders parent widget """ super(MotorSlider, self).__init__(parent) self.values_format = "%+8.4f" #"{0:8.4f}" # slider params: self.slider = qt_import.QSlider() self.slider.setEnabled(False) self.slider.setTickInterval(10) self.slider.setTickPosition(qt_import.QSlider.TicksBothSides) self.slider.setOrientation(qt_import.Qt.Horizontal) # extra controls min_value_text = self.values_format % self.slider.minimum() max_value_text = self.values_format % self.slider.maximum() current_value_text = self.values_format % self.slider.value() self.min_label = qt_import.QLabel(min_value_text) self.max_label = qt_import.QLabel(max_value_text) self.current_label = qt_import.QLabel(current_value_text) # layouts self.main_v_layout = qt_import.QVBoxLayout() self.labels_h_layout = qt_import.QHBoxLayout() self.labels_h_layout.addWidget(self.min_label) self.labels_h_layout.addStretch() self.labels_h_layout.addWidget(self.current_label) self.labels_h_layout.addStretch() self.labels_h_layout.addWidget(self.max_label) self.main_v_layout.addLayout(self.labels_h_layout) self.main_v_layout.addWidget(self.slider) self.setLayout(self.main_v_layout) # stylesheets self.slider.setStyleSheet(self.stylesheet1) self.slider.valueChanged.connect(self.value_changed)
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, parent=None): """" Constructor of MoveBox :param parent: MoveBox parent widget """ super(MoveBox, self).__init__(parent) self.old_positions = [] # history of motor positions self.label_move = qt_import.QLabel("go to ", self) self.text_move = qt_import.QLineEdit("", self) self.cmd_move = qt_import.QPushButton("", self) self.cmd_move.setCheckable(True) self.cmd_go_back = qt_import.QPushButton("", self) self.cmd_stop = qt_import.QPushButton("", self) self.text_move.setFixedWidth( self.text_move.fontMetrics().width("8888.8888")) self.cmd_move.setCheckable(True) self.cmd_stop.setIcon(icons.load_icon("stop_small")) self.cmd_stop.setEnabled(False) self.cmd_go_back.setIcon(icons.load_icon("goback_small")) self.cmd_move.setIcon(icons.load_icon("move_small")) self.cmd_go_back.setEnabled(False) # connections self.text_move.textChanged.connect(self.text_move_text_changed) self.cmd_move.clicked.connect(self.move_clicked) self.cmd_stop.clicked.connect(self.stop_motor_signal) self.text_move.returnPressed.connect(self.text_move_return_pressed) self.cmd_go_back.clicked.connect(self.go_back_clicked) # layout hboxlayout = qt_import.QHBoxLayout(self) hboxlayout.insertSpacerItem( 0, qt_import.QSpacerItem(0, 0, qt_import.QSizePolicy.Expanding, qt_import.QSizePolicy.Fixed)) hboxlayout.addWidget(self.label_move) hboxlayout.addWidget(self.text_move) hboxlayout.addWidget(self.cmd_move) hboxlayout.addWidget(self.cmd_go_back) hboxlayout.addWidget(self.cmd_stop) hboxlayout.insertSpacerItem( 0, qt_import.QSpacerItem(0, 0, qt_import.QSizePolicy.Expanding, qt_import.QSizePolicy.Fixed)) self.setLayout(hboxlayout)
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) # Properties ---------------------------------------------------------- self.add_property("mnemonic", "string", "") self.add_property("icons", "string", "") self.add_property("myTabLabel", "string", "") # Signals ------------------------------------------------------------ self.define_signal("incoming_unread_messages", ()) self.define_signal("reset_unread_message", ()) # Slots --------------------------------------------------------------- self.define_slot("tabSelected", ()) self.define_slot("sessionSelected", ()) # Hardware objects ---------------------------------------------------- self.instance_server_hwobj = None # Internal values ----------------------------------------------------- self.session_id = None self.nickname = "" self.role = BaseWidget.INSTANCE_ROLE_UNKNOWN # Graphic elements ---------------------------------------------------- self.conversation_textedit = qt_import.QTextEdit(self) self.conversation_textedit.setReadOnly(True) _controls_widget = qt_import.QWidget(self) _say_label = qt_import.QLabel("Say:", _controls_widget) self.message_ledit = qt_import.QLineEdit(_controls_widget) self.send_button = qt_import.QPushButton("Send", _controls_widget) self.send_button.setEnabled(False) # Layout -------------------------------------------------------------- _controls_widget_hlayout = qt_import.QHBoxLayout(_controls_widget) _controls_widget_hlayout.addWidget(_say_label) _controls_widget_hlayout.addWidget(self.message_ledit) _controls_widget_hlayout.addWidget(self.send_button) _controls_widget_hlayout.setSpacing(2) _controls_widget_hlayout.setContentsMargins(0, 0, 0, 0) _main_vlayout = qt_import.QVBoxLayout(self) _main_vlayout.addWidget(self.conversation_textedit) _main_vlayout.addWidget(_controls_widget) _main_vlayout.setSpacing(2) _main_vlayout.setContentsMargins(2, 2, 2, 2) # Qt signal/slot connections ------------------------------------------ self.send_button.clicked.connect(self.send_current_message) self.message_ledit.returnPressed.connect(self.send_current_message) self.message_ledit.textChanged.connect(self.message_changed)
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, options): qt_import.QWidget.__init__(self, parent) logging.debug("making message with options %r", options) qt_import.QHBoxLayout(self) icon = qt_import.QLabel(self) icon.setSizePolicy(qt_import.QSizePolicy.Fixed, qt_import.QSizePolicy.Fixed) # all the following stuff is there to get the standard icon # for our level directly from qt mapping = { "warning": qt_import.QMessageBox.Warning, "info": qt_import.QMessageBox.Information, "error": qt_import.QMessageBox.Critical, } level = mapping.get(options["level"]) if level is not None: icon.setPixmap(qt_import.QMessageBox.standardIcon(level)) text = qt_import.QLabel(options["text"], self) self.layout().addWidget(icon) self.layout().addWidget(text)
def __init__(self, parent=None, name=None, fl=0): qt_import.QWidget.__init__(self, parent, qt_import.Qt.WindowFlags(fl)) if name is not None: self.setObjectName(name) self.selected_element = None self.selected_edge = "L3" # Signals ------------------------------------------------------------ # Slots --------------------------------------------------------------- # Graphic elements ---------------------------------------------------- if PYMCA_IMPORTED: self.periodic_table = CustomPeriodicTable(self) else: self.periodic_elements_combo = qt_import.QComboBox(self) self.periodic_elements_combo.setFixedWidth(100) self.edge_widget = qt_import.QWidget(self) edge_label = qt_import.QLabel("Edge:", self.edge_widget) self.edge_combo = qt_import.QComboBox(self.edge_widget) # Layout -------------------------------------------------------------- _edge_hlayout = qt_import.QHBoxLayout(self.edge_widget) if not PYMCA_IMPORTED: _edge_hlayout.addWidget(self.periodic_elements_combo) _edge_hlayout.addWidget(edge_label) _edge_hlayout.addWidget(self.edge_combo) _edge_hlayout.addStretch(0) _edge_hlayout.setSpacing(2) _edge_hlayout.setContentsMargins(0, 0, 0, 0) _main_vlayout = qt_import.QVBoxLayout(self) if PYMCA_IMPORTED: _main_vlayout.addWidget(self.periodic_table, qt_import.Qt.AlignHCenter) _main_vlayout.addWidget(self.edge_widget) _main_vlayout.addStretch(0) _main_vlayout.setSpacing(2) _main_vlayout.setContentsMargins(2, 2, 2, 2) # SizePolicies -------------------------------------------------------- # Qt signal/slot connections ------------------------------------------ if PYMCA_IMPORTED: self.periodic_table.edgeSelectedSignal.connect(self.edge_selected) else: self.periodic_elements_combo.activated.connect(self.element_combo_activated) self.edge_combo.addItem("K") self.edge_combo.activated.connect(self.edge_combo_activated) self.edge_combo.setEnabled(False)
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, brick): qt_import.QGroupBox.__init__(self, "State", parent) BaseWidget.__init__(self, parent) # Graphic elements ---------------------------------------------------- # self.contents_widget = QGroupBox("Sample Changer State", self) self._parent = brick self.status_label = qt_import.QLabel("") self.status_label.setAlignment(qt_import.Qt.AlignCenter) # Layout -------------------------------------------------------------- _layout = qt_import.QHBoxLayout(self) _layout.addWidget(self.status_label) _layout.setSpacing(2) _layout.setContentsMargins(6, 6, 6, 10)
def __init__(self, *args): BaseWidget.__init__(self, *args) # Hardware objects ---------------------------------------------------- # Internal values ----------------------------------------------------- # Properties (name, type, default value, comment)---------------------- # Properties for hwobj initialization --------------------------------- self.add_property("hwobj_flux", "string", "") # Signals ------------------------------------------------------------- # Slots --------------------------------------------------------------- # Graphic elements ---------------------------------------------------- flux_label = qt_import.QLabel("Flux:", self) beam_label = qt_import.QLabel("Beam:", self) dose_label = qt_import.QLabel("Dose:", self) self.flux_value_label = qt_import.QLabel("-", self) self.beam_info_value_label = qt_import.QLabel("-", self) self.dose_value_label = qt_import.QLabel("-", self) # Layout -------------------------------------------------------------- _groupbox_vlayout = qt_import.QGridLayout(self) _groupbox_vlayout.addWidget(flux_label, 0, 0) _groupbox_vlayout.addWidget(beam_label, 1, 0) _groupbox_vlayout.addWidget(dose_label, 2, 0) _groupbox_vlayout.addWidget(self.flux_value_label, 0, 1) _groupbox_vlayout.addWidget(self.beam_info_value_label, 1, 1) _groupbox_vlayout.addWidget(self.dose_value_label, 2, 1) _groupbox_vlayout.setSpacing(2) _groupbox_vlayout.setContentsMargins(0, 0, 0, 0) # SizePolicies -------------------------------------------------------- flux_label.setMaximumWidth(40)
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, layout, initial_value, parent=None, title="", prefix=""): """" Constructor of StepEditor :param layout: select step value edit widget position :param initial_value: set motor initial position :param parent: parent widget :param title: step value edit widget's title :param prefix: + / - symbol fordward/backward step buttons """ super(StepEditor, self).__init__(parent) self.prefix = prefix self.value = initial_value # Graphic elements----------------------------------------------------- self.title_label = qt_import.QLabel(title) self.selection_box = qt_import.QFrame() self.edition_box = qt_import.QFrame() self.txt_new_value = qt_import.QLineEdit() self.cmd_ok = qt_import.QPushButton() self.cmd_ok.setIcon(icons.load_icon("button_ok_small")) self.cmd_ok.setFixedWidth(20) self.cmd_cancel = qt_import.QPushButton() self.cmd_cancel.setIcon(icons.load_icon("button_cancel_small")) self.cmd_cancel.setFixedWidth(20) self.edition_box.hide() self.title_label.hide() self.edition_box.setSizePolicy(qt_import.QSizePolicy.Fixed, qt_import.QSizePolicy.Fixed) self.double_validator = qt_import.QDoubleValidator(self.txt_new_value) self.double_validator.setNotation( qt_import.QDoubleValidator.StandardNotation) self.txt_new_value.setValidator(self.double_validator) # Layout -------------------------------------------------------------- self.main_vertical_layout = qt_import.QVBoxLayout() self.selection_box_layout = qt_import.QHBoxLayout() self.edition_box_layout = qt_import.QHBoxLayout() # widget's addition order defines their position self.edition_box_layout.addWidget(self.txt_new_value) self.edition_box_layout.addWidget(self.cmd_ok) self.edition_box_layout.addWidget(self.cmd_cancel) self.edition_box.setLayout(self.edition_box_layout) self.selection_box_layout.addWidget(self.edition_box) if layout == StepEditor.RIGHT_LAYOUT: self.cmd_select_value = qt_import.QPushButton(prefix + str(initial_value)) self.cmd_edit_value = qt_import.QPushButton("...") self.selection_box_layout.addWidget(self.cmd_select_value) self.selection_box_layout.addWidget(self.cmd_edit_value) else: self.cmd_edit_value = qt_import.QPushButton("...") self.cmd_select_value = qt_import.QPushButton(prefix + str(initial_value)) self.selection_box_layout.addWidget(self.cmd_edit_value) self.selection_box_layout.addWidget(self.cmd_select_value) self.selection_box.setLayout(self.selection_box_layout) self.main_vertical_layout.addWidget(self.title_label) self.main_vertical_layout.addWidget(self.selection_box) self.setLayout(self.main_vertical_layout) self.cmd_select_value.setAutoDefault(False) # Qt signal/slot connections ----------------------------------------- self.cmd_select_value.clicked.connect(self.cmd_select_value_clicked) self.cmd_edit_value.clicked.connect(self.cmd_edit_values_clicked) self.txt_new_value.returnPressed.connect(self.validate_new_value) self.cmd_ok.clicked.connect(self.validate_new_value) self.cmd_cancel.clicked.connect(self.end_edit)
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, parent=None, name=None, flags=0): qt_import.QDialog.__init__( self, parent, qt_import.Qt.WindowFlags(flags | qt_import.Qt.WindowStaysOnTopHint), ) # Internal variables -------------------------------------------------- # Graphic elements ---------------------------------------------------- self.contrast_slider = qt_import.QSlider(qt_import.Qt.Horizontal, self) self.contrast_doublespinbox = qt_import.QDoubleSpinBox(self) self.contrast_checkbox = qt_import.QCheckBox("auto", self) self.brightness_slider = qt_import.QSlider(qt_import.Qt.Horizontal, self) self.brightness_doublespinbox = qt_import.QDoubleSpinBox(self) self.brightness_checkbox = qt_import.QCheckBox("auto", self) self.gain_slider = qt_import.QSlider(qt_import.Qt.Horizontal, self) self.gain_doublespinbox = qt_import.QDoubleSpinBox(self) self.gain_checkbox = qt_import.QCheckBox("auto", self) self.gamma_slider = qt_import.QSlider(qt_import.Qt.Horizontal, self) self.gamma_doublespinbox = qt_import.QDoubleSpinBox(self) self.gamma_checkbox = qt_import.QCheckBox("auto", self) self.exposure_time_slider = qt_import.QSlider(qt_import.Qt.Horizontal, self) self.exposure_time_doublespinbox = qt_import.QDoubleSpinBox(self) self.exposure_time_checkbox = qt_import.QCheckBox("auto", self) __close_button = qt_import.QPushButton("Close", self) # Layout -------------------------------------------------------------- __main_gridlayout = qt_import.QGridLayout(self) __main_gridlayout.addWidget(qt_import.QLabel("Contrast:", self), 0, 0) __main_gridlayout.addWidget(self.contrast_slider, 0, 1) __main_gridlayout.addWidget(self.contrast_doublespinbox, 0, 2) __main_gridlayout.addWidget(self.contrast_checkbox, 0, 3) __main_gridlayout.addWidget(qt_import.QLabel("Brightness:", self), 1, 0) __main_gridlayout.addWidget(self.brightness_slider, 1, 1) __main_gridlayout.addWidget(self.brightness_doublespinbox, 1, 2) __main_gridlayout.addWidget(self.brightness_checkbox, 1, 3) __main_gridlayout.addWidget(qt_import.QLabel("Gain:", self), 2, 0) __main_gridlayout.addWidget(self.gain_slider, 2, 1) __main_gridlayout.addWidget(self.gain_doublespinbox, 2, 2) __main_gridlayout.addWidget(self.gain_checkbox, 2, 3) __main_gridlayout.addWidget(qt_import.QLabel("Gamma:", self), 3, 0) __main_gridlayout.addWidget(self.gamma_slider, 3, 1) __main_gridlayout.addWidget(self.gamma_doublespinbox, 3, 2) __main_gridlayout.addWidget(self.gamma_checkbox, 3, 3) __main_gridlayout.addWidget(qt_import.QLabel("Exposure time (ms):", self), 4, 0) __main_gridlayout.addWidget(self.exposure_time_slider, 4, 1) __main_gridlayout.addWidget(self.exposure_time_doublespinbox, 4, 2) __main_gridlayout.addWidget(self.exposure_time_checkbox, 4, 3) __main_gridlayout.addWidget(__close_button, 6, 2) __main_gridlayout.setSpacing(2) __main_gridlayout.setContentsMargins(5, 5, 5, 5) __main_gridlayout.setSizeConstraint(qt_import.QLayout.SetFixedSize) # Qt signal/slot connections ------------------------------------------ self.contrast_slider.valueChanged.connect(self.set_contrast) self.contrast_doublespinbox.valueChanged.connect(self.set_contrast) self.contrast_checkbox.stateChanged.connect(self.set_contrast_auto) self.brightness_slider.valueChanged.connect(self.set_brightness) self.brightness_doublespinbox.valueChanged.connect(self.set_brightness) self.brightness_checkbox.stateChanged.connect(self.set_brightness_auto) self.gain_slider.valueChanged.connect(self.set_gain) self.gain_doublespinbox.valueChanged.connect(self.set_gain) self.gain_checkbox.stateChanged.connect(self.set_gain_auto) self.gamma_slider.valueChanged.connect(self.set_gamma) self.gamma_doublespinbox.valueChanged.connect(self.set_gamma) self.gamma_checkbox.stateChanged.connect(self.set_gamma_auto) self.exposure_time_slider.valueChanged.connect(self.set_exposure_time) self.exposure_time_doublespinbox.valueChanged.connect(self.set_exposure_time) self.exposure_time_checkbox.stateChanged.connect(self.set_exposure_time_auto) __close_button.clicked.connect(self.close) # SizePolicies -------------------------------------------------------- self.contrast_slider.setFixedWidth(200) self.brightness_slider.setFixedWidth(200) self.gain_slider.setFixedWidth(200) self.gamma_slider.setFixedWidth(200) self.exposure_time_slider.setFixedWidth(200) __close_button.setSizePolicy( qt_import.QSizePolicy.Fixed, qt_import.QSizePolicy.Fixed ) # Other --------------------------------------------------------------- self.setModal(True) self.setWindowTitle("Camera controls")
def __init__(self, *args): BaseWidget.__init__(self, *args) # Hardware objects ---------------------------------------------------- self.graphics_manager_hwobj = None # Internal values ----------------------------------------------------- self.graphics_scene_size = None self.graphics_scene_fixed_size = None self.graphics_view = None # self.graphics_camera_frame = None self.fixed_size = None self.display_beam = None self.display_scale = None self.image_scale_list = [] # Properties ---------------------------------------------------------- self.add_property("mnemonic", "string", "/graphics") self.add_property("fixedSize", "string", "") self.add_property("displayBeam", "boolean", True) self.add_property("displayScale", "boolean", True) self.add_property("displayOmegaAxis", "boolean", True) self.add_property("beamDefiner", "boolean", False) self.add_property("cameraControls", "boolean", False) # Graphic elements----------------------------------------------------- self.info_widget = qt_import.QWidget(self) self.display_beam_size_cbox = qt_import.QCheckBox("Display beam size", self) self.display_beam_size_cbox.setHidden(False) self.coord_label = qt_import.QLabel(":", self) self.info_label = qt_import.QLabel(self) self.camera_control_dialog = CameraControlDialog(self) self.popup_menu = qt_import.QMenu(self) self.popup_menu.menuAction().setIconVisibleInMenu(True) create_menu = self.popup_menu.addMenu("Create") create_menu.menuAction().setIconVisibleInMenu(True) temp_action = create_menu.addAction( icons.load_icon("VCRPlay2"), "Centring point with 3 clicks", self.create_point_click_clicked, ) temp_action.setShortcut("Ctrl+1") temp_action = create_menu.addAction( icons.load_icon("ThumbUp"), "Centring point on current position", self.create_point_current_clicked, ) temp_action.setShortcut("Ctrl+2") temp_action.setIcon(icons.load_icon("ThumbUp")) create_menu.addAction( icons.load_icon("ThumbUp"), "Centring points with one click", self.create_points_one_click_clicked, ) temp_action = create_menu.addAction( icons.load_icon("Line.png"), "Helical line", self.create_line_clicked ) temp_action.setShortcut("Ctrl+3") temp_action = create_menu.addAction( icons.load_icon("Line.png"), "Automatic helical line", self.create_auto_line_clicked, ) temp_action = create_menu.addAction( icons.load_icon("Grid"), "Grid", self.create_grid ) temp_action.setShortcut("Ctrl+4") temp_action = create_menu.addAction( icons.load_icon("AutoGrid"), "Auto Grid", self.create_auto_grid ) measure_menu = self.popup_menu.addMenu("Measure") self.measure_distance_action = measure_menu.addAction( icons.load_icon("measure_distance"), "Distance", self.measure_distance_clicked, ) self.measure_angle_action = measure_menu.addAction( icons.load_icon("measure_angle"), "Angle", self.measure_angle_clicked ) self.measure_area_action = measure_menu.addAction( icons.load_icon("measure_area"), "Area", self.measure_area_clicked ) beam_mark_menu = self.popup_menu.addMenu("Beam mark") self.move_beam_mark_manual_action = beam_mark_menu.addAction( "Set position manually", self.move_beam_mark_manual ) # self.move_beam_mark_manual_action.setEnabled(False) self.move_beam_mark_auto_action = beam_mark_menu.addAction( "Set position automaticaly", self.move_beam_mark_auto ) # self.move_beam_mark_auto_action.setEnabled(False) self.display_beam_size_action = beam_mark_menu.addAction( "Display size", self.display_beam_size_toggled ) self.display_beam_size_action.setCheckable(True) self.define_beam_action = self.popup_menu.addAction( icons.load_icon("Draw"), "Define beam size with slits", self.define_beam_size, ) self.define_beam_action.setEnabled(False) self.popup_menu.addSeparator() temp_action = self.popup_menu.addAction( "Select all centring points", self.select_all_points_clicked ) temp_action.setShortcut("Ctrl+A") temp_action = self.popup_menu.addAction( "Deselect all items", self.deselect_all_items_clicked ) temp_action.setShortcut("Ctrl+D") temp_action = self.popup_menu.addAction( icons.load_icon("Delete"), "Clear all items", self.clear_all_items_clicked ) temp_action.setShortcut("Ctrl+X") self.popup_menu.addSeparator() tools_menu = self.popup_menu.addMenu("Tools") self.display_grid_action = tools_menu.addAction( icons.load_icon("Grid"), "Display grid", self.display_grid_toggled ) self.display_grid_action.setCheckable(True) self.display_histogram_action = tools_menu.addAction( icons.load_icon("Grid"), "Display historgram", self.display_histogram_toggled, ) self.display_histogram_action.setCheckable(True) self.magnification_action = tools_menu.addAction( icons.load_icon("Magnify2"), "Magnification tool", self.start_magnification_tool, ) # self.magnification_action.setCheckable(True) # self.display_histogram_action = self.popup_menu.addAction(\ # "Display histogram", self.display_histogram_toggled) # self.define_histogram_action = self.popup_menu.addAction(\ # "Define histogram", self.define_histogram_clicked) # self.display_histogram_action.setEnabled(False) # self.define_histogram_action.setEnabled(False) self.image_scale_menu = self.popup_menu.addMenu( icons.load_icon("DocumentMag2"), "Image scale" ) self.image_scale_menu.setEnabled(False) self.image_scale_menu.triggered.connect(self.image_scale_triggered) self.camera_control_action = self.popup_menu.addAction( "Camera control", self.open_camera_control_dialog ) self.camera_control_action.setEnabled(False) # Layout -------------------------------------------------------------- _info_widget_hlayout = qt_import.QHBoxLayout(self.info_widget) _info_widget_hlayout.addWidget(self.display_beam_size_cbox) _info_widget_hlayout.addWidget(self.coord_label) _info_widget_hlayout.addStretch(0) _info_widget_hlayout.addWidget(self.info_label) _info_widget_hlayout.setSpacing(0) _info_widget_hlayout.setContentsMargins(0, 0, 0, 0) self.info_widget.setLayout(_info_widget_hlayout) self.main_layout = qt_import.QVBoxLayout(self) self.main_layout.setSpacing(0) self.main_layout.setContentsMargins(0, 0, 0, 0) # Qt signal/slot connections ----------------------------------------- self.display_beam_size_cbox.stateChanged.connect(self.display_beam_size_toggled) # SizePolicies -------------------------------------------------------- self.info_widget.setSizePolicy( qt_import.QSizePolicy.Expanding, qt_import.QSizePolicy.Fixed ) # Scene elements ------------------------------------------------------ self.setMouseTracking(True)
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, 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