def restoreWidgetPosition(self): super().restoreWidgetPosition() self.table = QTableWidget(self.harmonic_maximum_index + 1, 3) self.table.setStyleSheet("background-color: white;") self.table.setAlternatingRowColors(True) self.table.horizontalHeader().setSectionResizeMode(QHeaderView.Fixed) for i in range(0, 3): self.table.setColumnWidth(i, 70) horHeaders = [] verHeaders = [] for n, key in enumerate(sorted(self.data.keys())): horHeaders.append(key) for m, item in enumerate(self.data[key]): table_item = QTableWidgetItem(str(item)) table_item.setTextAlignment(Qt.AlignRight) self.table.setItem(m, n, table_item) verHeaders.append(str(m)) self.table.setHorizontalHeaderLabels(horHeaders) self.table.setVerticalHeaderLabels(verHeaders) self.table.resizeRowsToContents() self.table.itemChanged.connect(self.table_item_changed) self.scrollarea.setWidget(self.table) self.scrollarea.setWidgetResizable(1) gui.rubber(self.controlArea)
def __init__(self): super().__init__() left_box_1 = oasysgui.widgetBox(self.controlArea, "X0h Request Form", addSpace=True, orientation="vertical", width=610, height=640) html = self.clear_input_form(HttpManager.send_xray_server_direct_request("/cgi/www_form.exe?template=x0h_form.htm")) self.x0h_input = QWebView(left_box_1) self.x0h_input.setHtml(html) left_box_1.layout().addWidget(self.x0h_input) self.x0h_input.setFixedHeight(540) self.x0h_input.setFixedWidth(590) button = gui.button(self.controlArea, self, "Get X0h!", callback=self.submit) button.setFixedHeight(30) gui.rubber(self.controlArea) self.tabs = [] self.tabs_widget = oasysgui.tabWidget(self.mainArea) self.initializeTabs() self.x0h_output = QWebView(self.tabs[0]) self.tabs[0].layout().addWidget(self.x0h_output) self.x0h_output.setFixedHeight(630) self.x0h_output.setFixedWidth(740)
def __init__(self): left_box_1 = oasysgui.widgetBox(self.controlArea, "Power Calculation", addSpace=True, orientation="vertical", width=380, height=120) gui.comboBox(left_box_1, self, "redo_calculation", label="Recalculate Intensity", items=["No", "Yes"], labelWidth=260, sendSelectedValue=False, orientation="horizontal") gui.rubber(self.controlArea)
def __init__(self): super().__init__(show_automatic_box=True) self.main_box = gui.widgetBox(self.controlArea, self.get_parameter_name(), orientation="vertical", width=self.CONTROL_AREA_WIDTH - 10, height=self.get_height()) self.button_box = gui.widgetBox(self.main_box, "", orientation="horizontal", width=self.CONTROL_AREA_WIDTH - 25) gui.button(self.button_box, self, "Send " + self.get_parameter_name(), height=40, callback=self.send_parameter) self.build_main_box() orangegui.separator(self.main_box) self.parameter_tabs = gui.tabWidget(self.main_box) self.parameter_box_array = [] self.build_parameter_box_array() runaction = OWAction("Send " + self.get_parameter_name(), self) runaction.triggered.connect(self.send_parameter) self.addAction(runaction) orangegui.rubber(self.controlArea)
def __init__(self): self.setFixedWidth(590) self.setFixedHeight(390) left_box_1 = oasysgui.widgetBox(self.controlArea, "Ansys Surface", addSpace=True, orientation="vertical") select_file_box = oasysgui.widgetBox(left_box_1, "", addSpace=True, orientation="horizontal", height=50) self.le_surface_file_name = oasysgui.lineEdit(select_file_box, self, "surface_file_name", "Surface File Name", labelWidth=150, valueType=str, orientation="horizontal") self.le_surface_file_name.setFixedWidth(300) pushButton = gui.button(select_file_box, self, "...") pushButton.clicked.connect(self.selectSurfaceFile) oasysgui.lineEdit(left_box_1, self, "x_min", "X Min", labelWidth=350, valueType=float, orientation="horizontal") oasysgui.lineEdit(left_box_1, self, "x_max", "X Max", labelWidth=350, valueType=float, orientation="horizontal") oasysgui.lineEdit(left_box_1, self, "y_min", "Y Min", labelWidth=350, valueType=float, orientation="horizontal") oasysgui.lineEdit(left_box_1, self, "y_max", "Y Max", labelWidth=350, valueType=float, orientation="horizontal") gui.separator(left_box_1) oasysgui.lineEdit(left_box_1, self, "number_of_x_cells", "Number of X cells", labelWidth=350, valueType=int, orientation="horizontal") oasysgui.lineEdit(left_box_1, self, "number_of_y_cells", "Number of Y cells", labelWidth=350, valueType=int, orientation="horizontal") oasysgui.lineEdit(left_box_1, self, "n_sigma_x", "N Sigma X", labelWidth=350, valueType=float, orientation="horizontal") oasysgui.lineEdit(left_box_1, self, "n_sigma_y", "N Sigma Y", labelWidth=350, valueType=float, orientation="horizontal") gui.separator(self.controlArea) button = gui.button(self.controlArea, self, "Convert To Shadow", callback=self.convertToShadow) button.setFixedHeight(45) gui.rubber(self.controlArea)
def __init__(self): super().__init__() self.runaction = widget.OWAction("Write Shadow File", self) self.runaction.triggered.connect(self.write_file) self.addAction(self.runaction) self.setFixedWidth(590) self.setFixedHeight(180) left_box_1 = oasysgui.widgetBox(self.controlArea, "Shadow File Selection", addSpace=True, orientation="vertical", width=570, height=100) gui.checkBox(left_box_1, self, 'is_automatic_run', 'Automatic Execution') gui.separator(left_box_1, height=10) figure_box = oasysgui.widgetBox(left_box_1, "", addSpace=True, orientation="horizontal", width=550, height=50) self.le_beam_file_name = oasysgui.lineEdit(figure_box, self, "beam_file_name", "Shadow File Name", labelWidth=120, valueType=str, orientation="horizontal") self.le_beam_file_name.setFixedWidth(330) gui.button(figure_box, self, "...", callback=self.selectFile) gui.separator(left_box_1, height=10) button = gui.button(self.controlArea, self, "Write Shadow File", callback=self.write_file) button.setFixedHeight(45) gui.rubber(self.controlArea)
def __init__(self): super().__init__() self.runaction = widget.OWAction("Write Shadow File", self) self.runaction.triggered.connect(self.write_file) self.addAction(self.runaction) self.setFixedWidth(590) self.setFixedHeight(190) left_box_1 = oasysgui.widgetBox(self.controlArea, "Shadow File Selection", addSpace=True, orientation="vertical", width=570, height=110) gui.checkBox(left_box_1, self, 'is_automatic_run', 'Automatic Execution') gui.separator(left_box_1, height=10) figure_box = oasysgui.widgetBox(left_box_1, "", addSpace=True, orientation="horizontal", width=550, height=35) self.le_beam_file_name = oasysgui.lineEdit(figure_box, self, "beam_file_name", "Shadow File Name", labelWidth=120, valueType=str, orientation="horizontal") self.le_beam_file_name.setFixedWidth(330) gui.button(figure_box, self, "...", callback=self.selectFile) button = gui.button(self.controlArea, self, "Write Shadow File", callback=self.write_file) button.setFixedHeight(45) gui.rubber(self.controlArea)
def restoreWidgetPosition(self): super().restoreWidgetPosition() self.table = QTableWidget(self.harmonic_maximum_index + 1, 3) self.table.setAlternatingRowColors(True) self.table.horizontalHeader().setResizeMode(QHeaderView.Fixed) for i in range(0, 3): self.table.setColumnWidth(i, 70) horHeaders = [] verHeaders = [] for n, key in enumerate(sorted(self.data.keys())): horHeaders.append(key) for m, item in enumerate(self.data[key]): table_item = QTableWidgetItem(str(item)) table_item.setTextAlignment(Qt.AlignRight) self.table.setItem(m, n, table_item) verHeaders.append(str(m)) self.table.setHorizontalHeaderLabels(horHeaders) self.table.setVerticalHeaderLabels(verHeaders) self.table.resizeRowsToContents() self.table.itemChanged.connect(self.table_item_changed) self.scrollarea.setWidget(self.table) self.scrollarea.setWidgetResizable(1) gui.rubber(self.controlArea)
def __init__(self): super().__init__(show_automatic_box=True) line_profiles_box = gui.widgetBox(self.controlArea, "Line Profiles", orientation="vertical", width=self.CONTROL_AREA_WIDTH - 10, height=600) button_box = gui.widgetBox(line_profiles_box, "", orientation="horizontal", width=self.CONTROL_AREA_WIDTH-25) gui.button(button_box, self, "Send Line Profiles", height=40, callback=self.send_line_profiles) self.line_profiles_tabs = gui.tabWidget(line_profiles_box) self.line_profiles_box_array = [] for index in range(len(self.reflections_of_phases)): line_profiles_tab = gui.createTabPage(self.line_profiles_tabs, DiffractionPattern.get_default_name(index)) line_profiles_box = LineProfileBox(widget=self, parent=line_profiles_tab, diffraction_pattern_index = index, reflections_of_phases = self.reflections_of_phases[index], limits = self.limits[index], limit_types = self.limit_types[index]) self.line_profiles_box_array.append(line_profiles_box) runaction = OWAction("Send Line Profiles", self) runaction.triggered.connect(self.send_line_profiles) self.addAction(runaction) orangegui.rubber(self.controlArea)
def do_plot(self, custom_data): x = custom_data[0, :] y = custom_data[-1, :] x.shape = -1 y.shape = -1 title = "top" xtitle = "X" ytitle = "Y" print(x, y) plot = PlotWindow(roi=True, control=True, position=True) plot.setDefaultPlotLines(False) plot.setActiveCurveColor(color='darkblue') plot.addCurve(x, y, title, symbol='o', color='blue') #'+', '^', plot.setGraphXLabel(xtitle) plot.setGraphYLabel(ytitle) plot.setDrawModeEnabled(True, 'rectangle') plot.setZoomModeEnabled(True) if self.figure_canvas is not None: self.mainArea.layout().removeWidget(self.figure_canvas) self.figure_canvas = plot self.mainArea.layout().addWidget(self.figure_canvas) gui.rubber(self.mainArea)
def __init__(self): super().__init__() box0 = gui.widgetBox(self.controlArea, " ",orientation="horizontal") #widget buttons: compute, set defaults, help gui.button(box0, self, "Compute", callback=self.compute) gui.button(box0, self, "Defaults", callback=self.defaults) gui.button(box0, self, "Help", callback=self.help1) self.process_showers() box = gui.widgetBox(self.controlArea, " ",orientation="vertical") idx = -1 #widget index 0 idx += 1 box1 = gui.widgetBox(box) gui.comboBox(box1, self, "ITUBE", label=self.unitLabels()[idx], addSpace=True, items=['Mo', 'Rh', 'W'], valueType=int, orientation="horizontal") self.show_at(self.unitFlags()[idx], box1) #widget index 1 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "VOLTAGE", label=self.unitLabels()[idx], addSpace=True, valueType=float, validator=QDoubleValidator()) self.show_at(self.unitFlags()[idx], box1) gui.rubber(self.controlArea)
def __init__(self): super().__init__() left_box_2 = oasysgui.widgetBox(self.tab_source, "BM Parameters", addSpace=True, orientation="vertical", height=175) oasysgui.lineEdit(left_box_2, self, "magnetic_radius", "Magnetic Radius [m]", labelWidth=260, valueType=float, orientation="horizontal", callback=self.calculateMagneticField) oasysgui.lineEdit(left_box_2, self, "magnetic_field", "Magnetic Field [T]", labelWidth=260, valueType=float, orientation="horizontal", callback=self.calculateMagneticRadius) oasysgui.lineEdit(left_box_2, self, "length", "Length [m]", labelWidth=260, valueType=float, orientation="horizontal") gui.rubber(self.controlArea) gui.rubber(self.mainArea)
def _setup_control_area(self) -> None: box = gui.widgetBox(self.controlArea, "Word Scoring Methods") for value, (n, _, tt) in SCORING_METHODS.items(): b = gui.hBox(box, margin=0) gui.checkBox( b, self, value, label=n, callback=self.__setting_changed, tooltip=tt, ) if value in ADDITIONAL_OPTIONS: value, options = ADDITIONAL_OPTIONS[value] gui.comboBox( b, self, value, items=options, callback=self.__setting_changed, ) box = gui.widgetBox(self.controlArea, "Aggregation") gui.comboBox( box, self, "aggregation", items=[n for n in AGGREGATIONS], callback=self.__setting_changed, ) gui.rubber(self.controlArea) gui.auto_send(self.buttonsArea, self, "auto_commit")
def __init__(self): super().__init__(show_automatic_box=True) main_box = gui.widgetBox(self.controlArea, "Phases", orientation="vertical", width=self.CONTROL_AREA_WIDTH - 5, height=self.get_height()) button_box = gui.widgetBox(main_box, "", orientation="horizontal", width=self.CONTROL_AREA_WIDTH - 25) gui.button(button_box, self, "Send Phases", height=50, callback=self.send_phases) tabs_button_box = gui.widgetBox(main_box, "", addSpace=False, orientation="horizontal") btns = [ gui.button(tabs_button_box, self, "Insert Phase Before", callback=self.insert_before), gui.button(tabs_button_box, self, "Insert Phase After", callback=self.insert_after), gui.button(tabs_button_box, self, "Remove Phase", callback=self.remove) ] for btn in btns: btn.setFixedHeight(35) self.phases_tabs = gui.tabWidget(main_box) self.phases_box_array = [] for index in range(len(self.a)): phase_tab = gui.createTabPage(self.phases_tabs, "Phase " + str(index + 1)) phase_box = self.get_phase_box_instance(index, phase_tab) self.phases_box_array.append(phase_box) runaction = OWAction("Send Phases", self) runaction.triggered.connect(self.send_phases) self.addAction(runaction) orangegui.rubber(self.controlArea)
def __init__(self): super().__init__() self.runaction = OWAction("Compute", self) self.runaction.triggered.connect(self.compute) self.addAction(self.runaction) geom = QApplication.desktop().availableGeometry() self.setGeometry(QRect(round(geom.width()*0.05), round(geom.height()*0.05), round(min(geom.width()*0.98, self.MAX_WIDTH)), round(min(geom.height()*0.95, self.MAX_HEIGHT)))) self.setMaximumHeight(self.geometry().height()) self.setMaximumWidth(self.geometry().width()) self.controlArea.setFixedWidth(self.CONTROL_AREA_WIDTH) box0 = gui.widgetBox(self.controlArea, "", orientation="horizontal") #widget buttons: compute, set defaults, help gui.button(box0, self, "Compute", callback=self.compute) gui.button(box0, self, "Defaults", callback=self.defaults) gui.button(box0, self, "Help", callback=self.help1) gui.separator(self.controlArea, height=10) self.build_gui() self.process_showers() gui.rubber(self.controlArea) self.main_tabs = gui.tabWidget(self.mainArea) plot_tab = gui.createTabPage(self.main_tabs, "Results") out_tab = gui.createTabPage(self.main_tabs, "Output") view_box = oasysgui.widgetBox(plot_tab, "Results Options", addSpace=False, orientation="horizontal") view_box_1 = oasysgui.widgetBox(view_box, "", addSpace=False, orientation="vertical", width=350) self.view_type_combo = gui.comboBox(view_box_1, self, "view_type", label="View Results", labelWidth=220, items=["No", "Yes"], callback=self.set_ViewType, sendSelectedValue=False, orientation="horizontal") self.tab = [] self.tabs = gui.tabWidget(plot_tab) self.initializeTabs() self.xoppy_output = QtGui.QTextEdit() self.xoppy_output.setReadOnly(True) out_box = gui.widgetBox(out_tab, "System Output", addSpace=True, orientation="horizontal") out_box.layout().addWidget(self.xoppy_output) self.xoppy_output.setFixedHeight(600) self.xoppy_output.setFixedWidth(600) gui.rubber(self.mainArea)
def __init__(self): super().__init__() # sets self.curvePoints, self.steps equidistant points from # 1/self.steps to 1 self.updateCurvePoints() # [start-snippet-2] self.scoring = [ ("Classification Accuracy", Orange.evaluation.scoring.CA), ("AUC", Orange.evaluation.scoring.AUC), ("Precision", Orange.evaluation.scoring.Precision), ("Recall", Orange.evaluation.scoring.Recall) ] # [end-snippet-2] #: input data on which to construct the learning curve self.data = None #: A {input_id: Learner} mapping of current learners from input channel self.learners = OrderedDict() #: A {input_id: List[Results]} mapping of input id to evaluation #: results list, one for each curve point self.results = OrderedDict() #: A {input_id: List[float]} mapping of input id to learning curve #: point scores self.curves = OrderedDict() # GUI box = gui.widgetBox(self.controlArea, "Info") self.infoa = gui.widgetLabel(box, 'No data on input.') self.infob = gui.widgetLabel(box, 'No learners.') gui.separator(self.controlArea) box = gui.widgetBox(self.controlArea, "Evaluation Scores") gui.comboBox(box, self, "scoringF", items=[x[0] for x in self.scoring], callback=self._invalidate_curves) gui.separator(self.controlArea) box = gui.widgetBox(self.controlArea, "Options") gui.spin(box, self, 'folds', 2, 100, step=1, label='Cross validation folds: ', keyboardTracking=False, callback=lambda: self._invalidate_results() if self.commitOnChange else None) gui.spin(box, self, 'steps', 2, 100, step=1, label='Learning curve points: ', keyboardTracking=False, callback=[self.updateCurvePoints, lambda: self._invalidate_results() if self.commitOnChange else None]) gui.checkBox(box, self, 'commitOnChange', 'Apply setting on any change') self.commitBtn = gui.button(box, self, "Apply Setting", callback=self._invalidate_results, disabled=True) gui.rubber(self.controlArea) # table widget self.table = gui.table(self.mainArea, selectionMode=QTableWidget.NoSelection)
def __init__(self): super().__init__() geom = QApplication.desktop().availableGeometry() self.setGeometry( QRect(round(geom.width() * 0.05), round(geom.height() * 0.05), round(min(geom.width() * 0.98, self.MAX_WIDTH)), round(min(geom.height() * 0.95, self.MAX_HEIGHT)))) self.setMaximumHeight(self.geometry().height()) self.setMaximumWidth(self.geometry().width()) gui.separator(self.controlArea) button_box = oasysgui.widgetBox(self.controlArea, "", addSpace=False, orientation="horizontal") button = gui.button(button_box, self, "Read Surface", callback=self.read_surface) button.setFixedHeight(45) button = gui.button(button_box, self, "Render Surface", callback=self.render_surface) button.setFixedHeight(45) input_box_l = oasysgui.widgetBox(self.controlArea, "Input", addSpace=True, orientation="horizontal", height=self.TABS_AREA_HEIGHT) self.le_surface_file_name = oasysgui.lineEdit(input_box_l, self, "surface_file_name", "Surface File Name", labelWidth=120, valueType=str, orientation="horizontal") gui.button(input_box_l, self, "...", callback=self.selectSurfaceFile) self.figure = Figure(figsize=(600, 600)) self.figure.patch.set_facecolor('white') self.axis = self.figure.add_subplot(111, projection='3d') self.axis.set_zlabel("Z [m]") self.figure_canvas = FigureCanvasQTAgg(self.figure) self.mainArea.layout().addWidget(self.figure_canvas) gui.rubber(self.mainArea)
def __init__(self): graphical_Options = GraphicalOptions(is_screen_slit=True) super().__init__(graphical_Options) gui.rubber(self.controlArea) gui.rubber(self.mainArea)
def __init__(self): graphical_Options=ow_optical_element.GraphicalOptions(is_grating=True) super().__init__(graphical_Options) gui.rubber(self.controlArea) gui.rubber(self.mainArea)
def __init__(self): self.setFixedWidth(300) self.setFixedHeight(100) gui.separator(self.controlArea, height=20) gui.label(self.controlArea, self, " SIMPLE PASSAGE POINT", orientation="horizontal") gui.rubber(self.controlArea)
def __init__(self): graphical_Options=GraphicalOptions(is_screen_slit=True) super().__init__(graphical_Options) gui.rubber(self.controlArea) gui.rubber(self.mainArea)
def __init__(self): super().__init__() self.runaction = widget.OWAction("Read Wavefront hdf5 File", self) self.runaction.triggered.connect(self.read_file) self.addAction(self.runaction) self.setFixedWidth(590) self.setFixedHeight(250) left_box_1 = oasysgui.widgetBox(self.controlArea, "HDF5 Local File Selection", addSpace=True, orientation="vertical", width=570, height=100) figure_box = oasysgui.widgetBox(left_box_1, "", addSpace=True, orientation="vertical", width=550, height=50) self.le_file_name = oasysgui.lineEdit(figure_box, self, "file_name", "File Name", labelWidth=190, valueType=str, orientation="horizontal") self.le_file_name.setFixedWidth(360) self.le_data_path = oasysgui.lineEdit(figure_box, self, "data_path", "Group (wavefront name)", labelWidth=190, valueType=str, orientation="horizontal") self.le_data_path.setFixedWidth(360) gui.separator(left_box_1, height=20) button = gui.button(self.controlArea, self, "Browse File and Send Data", callback=self.read_file) button.setFixedHeight(45) gui.separator(self.controlArea, height=20) button = gui.button(self.controlArea, self, "Send Data", callback=self.send_data) button.setFixedHeight(45) gui.rubber(self.controlArea)
def __init__(self): super().__init__() box0 = gui.widgetBox(self.controlArea, " ",orientation="horizontal") #widget buttons: compute, set defaults, help gui.button(box0, self, "Compute", callback=self.calculate_IdealPhaseRetarder) gui.button(box0, self, "Defaults", callback=self.defaults) gui.button(box0, self, "Help", callback=self.get_doc) self.process_showers() box = gui.widgetBox(self.controlArea, " ",orientation="vertical") idx = -1 # widget index 0 idx += 1 box1 = gui.widgetBox(box) gui.comboBox(box1, self, "TYPE", label=self.unitLabels()[idx], addSpace=True, items=['general', 'Quarter Wave Plate (fast-axis horizontal)', 'Quarter Wave Plate (fast-axis vertical)', 'Half Wave Plate (also Ideal Mirror)'], valueType=int, orientation="horizontal") self.show_at(self.unitFlags()[idx], box1) # widget index 1 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "THETA", label=self.unitLabels()[idx], addSpace=True, valueType=float, validator=QDoubleValidator()) self.show_at(self.unitFlags()[idx], box1) # widget index 2 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "DELTA", label=self.unitLabels()[idx], addSpace=True, valueType=float, validator=QDoubleValidator()) self.show_at(self.unitFlags()[idx], box1) # widget index 3 idx += 1 box1 = gui.widgetBox(box) gui.comboBox(box1, self, "DUMP_TO_FILE", label=self.unitLabels()[idx], addSpace=True, items=["No","Yes"], orientation="horizontal") self.show_at(self.unitFlags()[idx], box1) # widget index 4 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "FILE_NAME", label=self.unitLabels()[idx], addSpace=True) self.show_at(self.unitFlags()[idx], box1) gui.rubber(self.controlArea)
def __init__(self): super().__init__(show_automatic_box=True) self.setFixedHeight(310) main_box = gui.widgetBox(self.controlArea, "Fit Initialization", orientation="vertical", width=self.CONTROL_AREA_WIDTH - 10, height=210) button_box = gui.widgetBox(main_box, "", orientation="horizontal", width=self.CONTROL_AREA_WIDTH - 25) gui.button(button_box, self, "Send Fit Initialization", height=40, callback=self.send_fit_initialization) fft_box = gui.widgetBox(main_box, "FFT", orientation="vertical", width=self.CONTROL_AREA_WIDTH - 30) gui.lineEdit(fft_box, self, "s_max", "S_max [nm-1]", labelWidth=250, valueType=float, validator=QDoubleValidator()) self.cb_n_step = orangegui.comboBox( fft_box, self, "n_step", label="FFT Steps", labelWidth=350, items=["1024", "2048", "4096", "8192", "16384", "32768", "65536"], sendSelectedValue=True, orientation="horizontal") orangegui.comboBox(fft_box, self, "fft_type", label="FFT Type", items=FFTTypes.tuple(), orientation="horizontal") orangegui.rubber(self.controlArea) runaction = OWAction("Send Fit Initialization", self) runaction.triggered.connect(self.send_fit_initialization) self.addAction(runaction)
def __init__(self): super().__init__() geom = QApplication.desktop().availableGeometry() self.setGeometry(QRect(round(geom.width() * 0.05), round(geom.height() * 0.05), round(min(geom.width() * 0.98, self.MAX_WIDTH)), round(min(geom.height() * 0.95, self.MAX_HEIGHT)))) self.setMaximumHeight(self.geometry().height()) self.setMaximumWidth(self.geometry().width()) gui.separator(self.controlArea) button_box = oasysgui.widgetBox(self.controlArea, "", addSpace=False, orientation="horizontal") button = gui.button(button_box, self, "Read Thickness", callback=self.read_surface) button.setFixedHeight(45) button = gui.button(button_box, self, "Render Thickness", callback=self.render_surface) button.setFixedHeight(45) input_box_l = oasysgui.widgetBox(self.controlArea, "Input", addSpace=True, orientation="vertical", height=460, width=self.CONTROL_AREA_WIDTH) gui.button(input_box_l, self, "Select Thickness Error Profile Data Files", callback=self.select_files) self.files_area = oasysgui.textArea(height=250) self.refresh_files_text_area() input_box_l.layout().addWidget(self.files_area) gui.comboBox(input_box_l, self, "separator", label="Separator", labelWidth=350, items=["Comma", "Space"], sendSelectedValue=False, orientation="horizontal") oasysgui.lineEdit(input_box_l, self, "skip_rows", label="Skip Rows", labelWidth=350, orientation="horizontal", valueType=int) oasysgui.lineEdit(input_box_l, self, "conversion_to_m_z", label="Thickness conversion to m", labelWidth=300, orientation="horizontal", valueType=float) oasysgui.lineEdit(input_box_l, self, "conversion_to_m_xy", label="Coordinates conversion to m", labelWidth=300, orientation="horizontal", valueType=float) gui.comboBox(input_box_l, self, "negate", label="Invert Surface", labelWidth=350, items=["No", "Yes"], sendSelectedValue=False, orientation="horizontal") main_tabs = oasysgui.tabWidget(self.mainArea) plot_tab = oasysgui.createTabPage(main_tabs, "Thickness Error Surfaces") self.tab = [] self.tabs = oasysgui.tabWidget(plot_tab) self.initialize_figures() gui.rubber(self.controlArea) gui.rubber(self.mainArea)
def __init__(self): super().__init__() box0 = gui.widgetBox(self.controlArea, " ",orientation="horizontal") #widget buttons: compute, set defaults, help gui.button(box0, self, "Compute", callback=self.compute) gui.button(box0, self, "Defaults", callback=self.defaults) gui.button(box0, self, "Help", callback=self.help1) self.process_showers() box = gui.widgetBox(self.controlArea, " ",orientation="vertical") idx = -1 #widget index 0 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "TITLE", label=self.unitLabels()[idx], addSpace=True) self.show_at(self.unitFlags()[idx], box1) #widget index 1 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "TEMPERATURE", label=self.unitLabels()[idx], addSpace=True, valueType=float, validator=QDoubleValidator()) self.show_at(self.unitFlags()[idx], box1) #widget index 2 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "E_MIN", label=self.unitLabels()[idx], addSpace=True, valueType=float, validator=QDoubleValidator()) self.show_at(self.unitFlags()[idx], box1) #widget index 3 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "E_MAX", label=self.unitLabels()[idx], addSpace=True, valueType=float, validator=QDoubleValidator()) self.show_at(self.unitFlags()[idx], box1) #widget index 4 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "NPOINTS", label=self.unitLabels()[idx], addSpace=True, valueType=int, validator=QIntValidator()) self.show_at(self.unitFlags()[idx], box1) gui.rubber(self.controlArea)
def __init__(self): self.setFixedWidth(300) self.setFixedHeight(100) gui.separator(self.controlArea, height=20) gui.label(self.controlArea, self, " LOST RAYS REMOVER", orientation="horizontal") gui.rubber(self.controlArea)
def __init__(self): graphical_Options = ow_optical_element.GraphicalOptions(is_empty=True) super().__init__(graphical_Options) self.file_to_write_out = 3 self.write_out_inc_ref_angles = 0 gui.rubber(self.controlArea) gui.rubber(self.mainArea)
def __init__(self): self.setFixedWidth(300) self.setFixedHeight(100) gui.separator(self.controlArea, height=20) gui.label(self.controlArea, self, " Spectrum Saver", orientation="horizontal") gui.rubber(self.controlArea)
def __init__(self): self.setFixedWidth(300) self.setFixedHeight(100) gui.separator(self.controlArea, height=20) gui.label(self.controlArea, self, " Preprocessor Data Adapter", orientation="horizontal") gui.rubber(self.controlArea)
def __init__(self): self.setFixedWidth(300) self.setFixedHeight(100) gui.separator(self.controlArea, height=40) gui.button(self.controlArea, self, "Read Spectrum File (autobinning.dat)", callback=self.read_spectrum_file) gui.rubber(self.controlArea)
def __init__(self): self.setFixedWidth(600) self.setFixedHeight(100) gui.separator(self.controlArea, height=20) gui.label( self.controlArea, self, " CONVERSION POINT: PolarizedPhotonBunch <-> ShadowOuiBeam", orientation="horizontal") gui.rubber(self.controlArea)
def __init__(self): super().__init__() self._input_available = False self.af = None self.runaction = orange_widget.OWAction("Load COMSYL files", self) self.runaction.triggered.connect(self.read_file) self.addAction(self.runaction) geom = QApplication.desktop().availableGeometry() self.setGeometry( QRect(round(geom.width() * 0.05), round(geom.height() * 0.05), round(min(geom.width() * 0.98, self.MAX_WIDTH)), round(min(geom.height() * 0.95, self.MAX_HEIGHT)))) self.setMaximumHeight(self.geometry().height()) self.setMaximumWidth(self.geometry().width()) self.controlArea.setFixedWidth(self.CONTROL_AREA_WIDTH) self.build_left_panel() self.process_showers() gui.rubber(self.controlArea) self.main_tabs = gui.tabWidget(self.mainArea) plot_tab = gui.createTabPage(self.main_tabs, "Results") info_tab = gui.createTabPage(self.main_tabs, "Info") self.tab = [] self.tabs = gui.tabWidget(plot_tab) self.info = gui.tabWidget(info_tab) self.tab_titles = [] self.initialize_tabs() # info tab self.comsyl_output = QtWidgets.QTextEdit() self.comsyl_output.setReadOnly(True) out_box = gui.widgetBox(self.info, "COMSYL file info", addSpace=True, orientation="horizontal") out_box.layout().addWidget(self.comsyl_output) self.comsyl_output.setFixedHeight(self.IMAGE_HEIGHT) self.comsyl_output.setFixedWidth(self.IMAGE_WIDTH)
def __init__(self): super().__init__() box0 = gui.widgetBox(self.controlArea, " ",orientation="horizontal") #widget buttons: compute, set defaults, help gui.button(box0, self, "Compute", callback=self.calculate_IdealLinearPolarizer) gui.button(box0, self, "Defaults", callback=self.defaults) gui.button(box0, self, "Help", callback=self.get_doc) self.process_showers() box = gui.widgetBox(self.controlArea, " ",orientation="vertical") idx = -1 # widget index 0 idx += 1 box1 = gui.widgetBox(box) gui.comboBox(box1, self, "TYPE", label=self.unitLabels()[idx], addSpace=True, items=['general', 'Liner polarizer (horizontal transmission)', 'Liner polarizer (vertical transmission)', 'Liner polarizer (+45 deg transmission)', 'Liner polarizer (-45 deg transmission)'], valueType=int, orientation="horizontal") self.show_at(self.unitFlags()[idx], box1) # widget index 1 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "THETA", label=self.unitLabels()[idx], addSpace=True, valueType=float, validator=QDoubleValidator()) self.show_at(self.unitFlags()[idx], box1) # widget index 2 idx += 1 box1 = gui.widgetBox(box) gui.comboBox(box1, self, "DUMP_TO_FILE", label=self.unitLabels()[idx], addSpace=True, items=["No","Yes"], orientation="horizontal") self.show_at(self.unitFlags()[idx], box1) # widget index 3 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "FILE_NAME", label=self.unitLabels()[idx], addSpace=True) self.show_at(self.unitFlags()[idx], box1) gui.rubber(self.controlArea)
def __init__(self): super().__init__() self.setFixedWidth(585) self.setFixedHeight(155) left_box_1 = oasysgui.widgetBox(self.controlArea, "Footprint Settings", addSpace=True, orientation="vertical", width=570, height=130) self.le_beam_file_name = oasysgui.lineEdit(left_box_1, self, "beam_file_name", "Shadow File Name", labelWidth=120, valueType=str, orientation="horizontal") self.le_beam_file_name.setReadOnly(True) font = QtGui.QFont(self.le_beam_file_name.font()) font.setBold(True) self.le_beam_file_name.setFont(font) palette = QtGui.QPalette( self.le_beam_file_name.palette()) # make a copy of the palette palette.setColor(QtGui.QPalette.Text, QtGui.QColor('dark blue')) palette.setColor(QtGui.QPalette.Base, QtGui.QColor(243, 240, 160)) self.le_beam_file_name.setPalette(palette) gui.comboBox(left_box_1, self, "kind_of_power", label="Kind Of Power", items=["Incident", "Absorbed", "Transmitted"], labelWidth=260, sendSelectedValue=False, orientation="horizontal") gui.separator(left_box_1) gui.button(left_box_1, self, "Send Footprint", callback=self.calculate_footprint(), height=25) gui.rubber(self.controlArea)
def __init__(self): super().__init__() self.n = None self.product = 0 gui.radioButtonsInBox(self.controlArea, self, "factor", ("None", "Double", "Triple", "Quadruple"), box="Multiply", callback=self.do_multiply) self.result = gui.label(self.controlArea, self, "The product is %(product)i", box="Result") self.result.hide() gui.rubber(self.controlArea)
def __init__(self): super().__init__() self.runaction = widget.OWAction("Run Simulation", self) self.runaction.triggered.connect(self.run_simulation) self.addAction(self.runaction) geom = QApplication.desktop().availableGeometry() self.setGeometry(QRect(round(geom.width()*0.05), round(geom.height()*0.05), round(min(geom.width()*0.5, self.MAX_WIDTH)), round(min(geom.height()*0.5, self.MAX_HEIGHT)))) label_box = ShadowGui.widgetBox(self.controlArea, "", orientation="horizontal") gui.separator(label_box, height=50) gui.label(label_box, self, " JUST A DEMO WIDGET!!!!!") gui.separator(label_box, height=50) self.left_box_1 = ShadowGui.widgetBox(self.controlArea, "Electron Beam", addSpace=True, orientation="vertical") ShadowGui.lineEdit(self.left_box_1, self, "lens_position", "Position on beamline", labelWidth=300, valueType=float, orientation="horizontal") ShadowGui.lineEdit(self.left_box_1, self, "focal_x", "Focal length (horizontal) [m]", labelWidth=300, valueType=float, orientation="horizontal") ShadowGui.lineEdit(self.left_box_1, self, "focal_y", "Focal length (vertical) [m]", labelWidth=300, valueType=float, orientation="horizontal") button_box = ShadowGui.widgetBox(self.controlArea, "", addSpace=False, orientation="horizontal") button = gui.button(button_box, self, "Run Simulation", callback=self.run_simulation) font = QFont(button.font()) font.setBold(True) button.setFont(font) palette = QPalette(button.palette()) # make a copy of the palette palette.setColor(QPalette.ButtonText, QColor('Dark Blue')) button.setPalette(palette) # assign new palette button.setFixedHeight(45) button = gui.button(button_box, self, "Reset Fields", callback=self.callResetSettings) font = QFont(button.font()) font.setItalic(True) button.setFont(font) palette = QPalette(button.palette()) # make a copy of the palette palette.setColor(QPalette.ButtonText, QColor('Dark Red')) button.setPalette(palette) # assign new palette button.setFixedHeight(45) button.setFixedWidth(100) gui.rubber(self.controlArea)
def __init__(self): super().__init__() geom = QApplication.desktop().availableGeometry() self.setGeometry( QRect(round(geom.width() * 0.05), round(geom.height() * 0.05), round(min(geom.width() * 0.98, self.MAX_WIDTH)), round(min(geom.height() * 0.95, self.MAX_HEIGHT)))) self.setMaximumHeight(self.geometry().height()) self.setMaximumWidth(self.geometry().width()) gui.separator(self.controlArea) button_box = oasysgui.widgetBox(self.controlArea, "", addSpace=False, orientation="horizontal") button = gui.button(button_box, self, "Load HDF5 file", callback=self.load_file) button.setFixedHeight(45) input_box_l = oasysgui.widgetBox(self.controlArea, "Input", addSpace=True, orientation="horizontal", height=self.TABS_AREA_HEIGHT) self.le_hdf5_file_name = oasysgui.lineEdit(input_box_l, self, "hdf5_file_name", "HDF5 File Name", labelWidth=120, valueType=str, orientation="horizontal") gui.button(input_box_l, self, "...", callback=self.selectPlotXYFile) self.tree_view = Hdf5TreeViewWidget() self.mainArea.layout().addWidget(self.tree_view) gui.rubber(self.mainArea)
def __init__(self): self.runaction = OWAction("Start Loop", self) self.runaction.triggered.connect(self.startLoop) self.addAction(self.runaction) self.runaction = OWAction("Interrupt", self) self.runaction.triggered.connect(self.stopLoop) self.addAction(self.runaction) self.setFixedWidth(400) self.setFixedHeight(185) button_box = gui.widgetBox(self.controlArea, "", addSpace=True, orientation="horizontal") self.start_button = gui.button(button_box, self, "Start Loop", callback=self.startLoop) self.start_button.setFixedHeight(45) stop_button = gui.button(button_box, self, "Interrupt", callback=self.stopLoop) stop_button.setFixedHeight(45) font = QtGui.QFont(stop_button.font()) font.setBold(True) stop_button.setFont(font) palette = QtGui.QPalette(stop_button.palette()) # make a copy of the palette palette.setColor(QtGui.QPalette.ButtonText, QtGui.QColor('red')) stop_button.setPalette(palette) # assign new palette left_box_1 = oasysgui.widgetBox(self.controlArea, "Loop Management", addSpace=True, orientation="vertical", width=380, height=100) oasysgui.lineEdit(left_box_1, self, "number_of_new_beams", "Number of new Beams", labelWidth=250, valueType=int, orientation="horizontal") self.le_current_new_beam = oasysgui.lineEdit(left_box_1, self, "current_new_beam", "Current New Beam", labelWidth=250, valueType=int, orientation="horizontal") self.le_current_new_beam.setReadOnly(True) font = QtGui.QFont(self.le_current_new_beam.font()) font.setBold(True) self.le_current_new_beam.setFont(font) palette = QtGui.QPalette(self.le_current_new_beam.palette()) # make a copy of the palette palette.setColor(QtGui.QPalette.Text, QtGui.QColor('dark blue')) palette.setColor(QtGui.QPalette.Base, QtGui.QColor(243, 240, 160)) self.le_current_new_beam.setPalette(palette) gui.rubber(self.controlArea)
def __init__(self): super().__init__() self.runaction = widget.OWAction("Send Data to Simulators", self) self.runaction.triggered.connect(self.send_data) self.addAction(self.runaction) geom = QApplication.desktop().availableGeometry() self.setGeometry(QRect(round(geom.width()*0.05), round(geom.height()*0.05), round(min(geom.width()*0.5, self.MAX_WIDTH)), round(min(geom.height()*0.5, self.MAX_HEIGHT)))) left_box_1 = ShadowGui.widgetBox(self.controlArea, "Image Plane Parameters", addSpace=True, orientation="vertical") ShadowGui.lineEdit(left_box_1, self, "image_plane_name", "Image Plane Name", labelWidth=200, valueType=str, orientation="horizontal") ShadowGui.lineEdit(left_box_1, self, "image_plane_position", "Position on beamline", labelWidth=300, valueType=float, orientation="horizontal") button_box = ShadowGui.widgetBox(self.controlArea, "", addSpace=False, orientation="horizontal") button = gui.button(button_box, self, "Send Data to Simulators", callback=self.send_data) font = QFont(button.font()) font.setBold(True) button.setFont(font) palette = QPalette(button.palette()) # make a copy of the palette palette.setColor(QPalette.ButtonText, QColor('Dark Blue')) button.setPalette(palette) # assign new palette button.setFixedHeight(45) button = gui.button(button_box, self, "Reset Fields", callback=self.callResetSettings) font = QFont(button.font()) font.setItalic(True) button.setFont(font) palette = QPalette(button.palette()) # make a copy of the palette palette.setColor(QPalette.ButtonText, QColor('Dark Red')) button.setPalette(palette) # assign new palette button.setFixedHeight(45) button.setFixedWidth(100) gui.rubber(self.controlArea)
def __init__(self): super().__init__() self.controlArea.setFixedWidth(self.CONTROL_AREA_WIDTH) tabs_setting = oasysgui.tabWidget(self.controlArea) tabs_setting.setFixedHeight(self.TABS_AREA_HEIGHT) tabs_setting.setFixedWidth(self.CONTROL_AREA_WIDTH-5) tab_bas = oasysgui.createTabPage(tabs_setting, "Basic Setting") tab_sou = oasysgui.createTabPage(tabs_setting, "Source Setting") left_box_1 = oasysgui.widgetBox(tab_bas, "Monte Carlo and Energy Spectrum", addSpace=True, orientation="vertical") oasysgui.lineEdit(left_box_1, self, "number_of_rays", "Number of Rays", tooltip="Number of Rays", labelWidth=250, valueType=int, orientation="horizontal") oasysgui.lineEdit(left_box_1, self, "seed", "Seed", tooltip="Seed", labelWidth=250, valueType=int, orientation="horizontal") oasysgui.lineEdit(left_box_1, self, "energy", "Set undulator to energy [eV]", tooltip="Set undulator to energy [eV]", labelWidth=250, valueType=float, orientation="horizontal") oasysgui.lineEdit(left_box_1, self, "delta_e", "Delta Energy [eV]", tooltip="Delta Energy [eV]", labelWidth=250, valueType=float, orientation="horizontal") left_box_2 = oasysgui.widgetBox(tab_sou, "Machine Parameters", addSpace=True, orientation="vertical") self.le_sigma_x = oasysgui.lineEdit(left_box_2, self, "sigma_x", "Size RMS H", labelWidth=250, tooltip="Size RMS H", valueType=float, orientation="horizontal") self.le_sigma_z = oasysgui.lineEdit(left_box_2, self, "sigma_z", "Size RMS V", labelWidth=250, tooltip="Size RMS V", valueType=float, orientation="horizontal") oasysgui.lineEdit(left_box_2, self, "sigma_divergence_x", "Divergence RMS H [rad]", labelWidth=250, tooltip="Divergence RMS H [rad]", valueType=float, orientation="horizontal") oasysgui.lineEdit(left_box_2, self, "sigma_divergence_z", "Divergence RMS V [rad]", labelWidth=250, tooltip="Divergence RMS V [rad]", valueType=float, orientation="horizontal") left_box_3 = oasysgui.widgetBox(tab_sou, "Undulator Parameters", addSpace=True, orientation="vertical") oasysgui.lineEdit(left_box_3, self, "undulator_length", "Undulator Length [m]", labelWidth=250, tooltip="Undulator Length [m]", valueType=float, orientation="horizontal") adv_other_box = oasysgui.widgetBox(tab_bas, "Optional file output", addSpace=False, orientation="vertical") gui.comboBox(adv_other_box, self, "file_to_write_out", label="Files to write out", labelWidth=120, items=["None", "Begin.dat", "Debug (begin.dat + start.xx/end.xx)"], sendSelectedValue=False, orientation="horizontal") gui.rubber(self.controlArea) gui.rubber(self.mainArea)
def __init__(self): super().__init__() self.runaction = widget.OWAction("Run SRW Beamline Simulation", self) self.runaction.triggered.connect(self.runSimulation) self.addAction(self.runaction) self.controlArea.setFixedWidth(100) gui.separator(self.controlArea, height=50) button_box = ShadowGui.widgetBox(self.controlArea, "", addSpace=False, orientation="horizontal") button = gui.button(button_box, self, "Run Simulation", callback=self.runSimulation) font = QFont(button.font()) font.setBold(True) button.setFont(font) palette = QPalette(button.palette()) # make a copy of the palette palette.setColor(QPalette.ButtonText, QColor('Dark Blue')) button.setPalette(palette) # assign new palette button.setFixedHeight(45) gui.rubber(self.controlArea)
def __init__(self): super().__init__() self.runaction = widget.OWAction("Calculate Height Profile", self) self.runaction.triggered.connect(self.calculate_heigth_profile_ni) self.addAction(self.runaction) self.runaction = widget.OWAction("Generate Height Profile File", self) self.runaction.triggered.connect(self.generate_heigth_profile_file_ni) self.addAction(self.runaction) geom = QApplication.desktop().availableGeometry() self.setGeometry(QRect(round(geom.width() * 0.05), round(geom.height() * 0.05), round(min(geom.width() * 0.98, self.MAX_WIDTH)), round(min(geom.height() * 0.95, self.MAX_HEIGHT)))) self.setMaximumHeight(self.geometry().height()) self.setMaximumWidth(self.geometry().width()) # DABAM INITIALIZATION self.server = dabam.dabam() self.server.set_input_silent(True) gui.separator(self.controlArea) button_box = oasysgui.widgetBox(self.controlArea, "", addSpace=False, orientation="horizontal") button = gui.button(button_box, self, "Calculate Height\nProfile", callback=self.calculate_heigth_profile) button.setFixedHeight(45) button = gui.button(button_box, self, "Generate Height\nProfile File", callback=self.generate_heigth_profile_file) font = QFont(button.font()) font.setBold(True) button.setFont(font) palette = QPalette(button.palette()) # make a copy of the palette palette.setColor(QPalette.ButtonText, QColor('Dark Blue')) button.setPalette(palette) # assign new palette button.setFixedHeight(45) button.setFixedWidth(150) button = gui.button(button_box, self, "Reset Fields", callback=self.call_reset_settings) font = QFont(button.font()) font.setItalic(True) button.setFont(font) palette = QPalette(button.palette()) # make a copy of the palette palette.setColor(QPalette.ButtonText, QColor('Dark Red')) button.setPalette(palette) # assign new palette button.setFixedHeight(45) gui.separator(self.controlArea) tabs_setting = gui.tabWidget(self.controlArea) tabs_setting.setFixedHeight(self.TABS_AREA_HEIGHT) tabs_setting.setFixedWidth(self.CONTROL_AREA_WIDTH-5) tab_input = oasysgui.createTabPage(tabs_setting, "DABAM Search Setting") tab_gener = oasysgui.createTabPage(tabs_setting, "DABAM Generation Setting") tab_out = oasysgui.createTabPage(tabs_setting, "Output") manual_box = oasysgui.widgetBox(tab_input, "Manual Entry", addSpace=True, orientation="vertical") oasysgui.lineEdit(manual_box, self, "entry_number", "Entry Number", labelWidth=300, valueType=int, orientation="horizontal") gui.separator(manual_box) button = gui.button(manual_box, self, "Retrieve Profile", callback=self.retrieve_profile) button.setFixedHeight(35) button.setFixedWidth(self.CONTROL_AREA_WIDTH-35) input_box = oasysgui.widgetBox(tab_input, "Search Parameters", addSpace=True, orientation="vertical") gui.comboBox(input_box, self, "shape", label="Mirror Shape", labelWidth=300, items=["All", "Plane", "Cylindrical", "Elliptical", "Toroidal", "Spherical"], sendSelectedValue=False, orientation="horizontal") gui.separator(input_box) input_box_1 = oasysgui.widgetBox(input_box, "", addSpace=True, orientation="horizontal") oasysgui.lineEdit(input_box_1, self, "slope_error_from", "Slope Error From (" + u"\u03BC" + "rad)", labelWidth=150, valueType=float, orientation="horizontal") oasysgui.lineEdit(input_box_1, self, "slope_error_to", "To (" + u"\u03BC" + "rad)", labelWidth=60, valueType=float, orientation="horizontal") input_box_2 = oasysgui.widgetBox(input_box, "", addSpace=True, orientation="horizontal") self.le_dimension_y_from = oasysgui.lineEdit(input_box_2, self, "dimension_y_from", "Mirror Length From", labelWidth=150, valueType=float, orientation="horizontal") self.le_dimension_y_to = oasysgui.lineEdit(input_box_2, self, "dimension_y_to", "To", labelWidth=60, valueType=float, orientation="horizontal") table_box = oasysgui.widgetBox(tab_input, "Search Results", addSpace=True, orientation="vertical", height=290) self.overlay_search = Overlay(table_box, self.search_profiles) self.overlay_search.hide() button = gui.button(input_box, self, "Search", callback=self.overlay_search.show) button.setFixedHeight(35) button.setFixedWidth(self.CONTROL_AREA_WIDTH-35) gui.comboBox(table_box, self, "use_undetrended", label="Use Undetrended Profile", labelWidth=300, items=["No", "Yes"], callback=self.table_item_clicked, sendSelectedValue=False, orientation="horizontal") gui.separator(table_box) self.scrollarea = QScrollArea() self.scrollarea.setMinimumWidth(self.CONTROL_AREA_WIDTH-35) table_box.layout().addWidget(self.scrollarea, alignment=Qt.AlignHCenter) self.table = QTableWidget(1, 5) self.table.setAlternatingRowColors(True) self.table.horizontalHeader().setResizeMode(QHeaderView.Fixed) self.table.verticalHeader().setVisible(False) self.table.setColumnWidth(0, 40) self.table.setColumnWidth(1, 70) self.table.setColumnWidth(2, 70) self.table.setColumnWidth(3, 85) self.table.setColumnWidth(4, 80) self.table.resizeRowsToContents() self.table.setSelectionBehavior(QAbstractItemView.SelectRows) self.table.itemClicked.connect(self.table_item_clicked) self.scrollarea.setWidget(self.table) self.scrollarea.setWidgetResizable(1) output_profile_box = oasysgui.widgetBox(tab_gener, "Surface Generation Parameters", addSpace=True, orientation="vertical", height=270) self.le_dimension_x = oasysgui.lineEdit(output_profile_box, self, "dimension_x", "Width", labelWidth=300, valueType=float, orientation="horizontal") self.le_step_x = oasysgui.lineEdit(output_profile_box, self, "step_x", "Step Width", labelWidth=300, valueType=float, orientation="horizontal") gui.comboBox(output_profile_box, self, "center_y", label="Center Profile in the middle of O.E.", labelWidth=300, items=["No", "Yes"], sendSelectedValue=False, orientation="horizontal") gui.comboBox(output_profile_box, self, "modify_y", label="Modify Length?", labelWidth=240, items=["No", "Rescale to new length", "Fit to new length (fill or cut)"], callback=self.set_ModifyY, sendSelectedValue=False, orientation="horizontal") self.modify_box_1 = oasysgui.widgetBox(output_profile_box, "", addSpace=False, orientation="vertical", height=50) self.modify_box_2 = oasysgui.widgetBox(output_profile_box, "", addSpace=False, orientation="vertical", height=50) oasysgui.lineEdit(self.modify_box_2, self, "scale_factor_y", "Scale Factor", labelWidth=300, valueType=float, orientation="horizontal") self.modify_box_3 = oasysgui.widgetBox(output_profile_box, "", addSpace=False, orientation="vertical", height=50) self.le_new_length = oasysgui.lineEdit(self.modify_box_3, self, "new_length", "New Length", labelWidth=300, valueType=float, orientation="horizontal") oasysgui.lineEdit(self.modify_box_3, self, "filler_value", "Filler Value (if new length > profile length) [nm]", labelWidth=300, valueType=float, orientation="horizontal") self.set_ModifyY() gui.comboBox(output_profile_box, self, "renormalize_y", label="Renormalize Length Profile to different RMS", labelWidth=300, items=["No", "Yes"], callback=self.set_RenormalizeY, sendSelectedValue=False, orientation="horizontal") self.output_profile_box_1 = oasysgui.widgetBox(output_profile_box, "", addSpace=True, orientation="vertical") gui.comboBox(self.output_profile_box_1, self, "error_type_y", label="Normalization to", labelWidth=270, items=["Figure Error (nm)", "Slope Error (" + u"\u03BC" + "rad)"], sendSelectedValue=False, orientation="horizontal") oasysgui.lineEdit(self.output_profile_box_1, self, "rms_y", "Rms Value", labelWidth=300, valueType=float, orientation="horizontal") self.set_RenormalizeY() output_box = oasysgui.widgetBox(tab_gener, "Outputs", addSpace=True, orientation="vertical") select_file_box = oasysgui.widgetBox(output_box, "", addSpace=True, orientation="horizontal") self.le_heigth_profile_file_name = oasysgui.lineEdit(select_file_box, self, "heigth_profile_file_name", "Output File Name", labelWidth=120, valueType=str, orientation="horizontal") gui.button(select_file_box, self, "...", callback=self.selectFile) self.shadow_output = QTextEdit() self.shadow_output.setReadOnly(True) out_box = oasysgui.widgetBox(tab_out, "System Output", addSpace=True, orientation="horizontal", height=500) out_box.layout().addWidget(self.shadow_output) gui.rubber(self.controlArea) self.initializeTabs() gui.rubber(self.mainArea) self.overlay_search.raise_()
def build_gui(self): box = oasysgui.widgetBox(self.controlArea, self.name + " Input Parameters", orientation="vertical", width=self.CONTROL_AREA_WIDTH-5) idx = -1 #widget index 1 idx += 1 box1 = gui.widgetBox(box) gui.comboBox(box1, self, "MAT_FLAG", label=self.unitLabels()[idx], addSpace=False, items=['Element(formula)', 'Mixture(formula)'], valueType=int, orientation="horizontal", labelWidth=250) self.show_at(self.unitFlags()[idx], box1) #widget index 3 idx += 1 box1 = gui.widgetBox(box) oasysgui.lineEdit(box1, self, "DESCRIPTOR", label=self.unitLabels()[idx], orientation="horizontal", addSpace=False) self.show_at(self.unitFlags()[idx], box1) #widget index 5 idx += 1 box1 = gui.widgetBox(box) oasysgui.lineEdit(box1, self, "GRIDSTART", label=self.unitLabels()[idx], addSpace=False, valueType=float, validator=QDoubleValidator(), orientation="horizontal", labelWidth=250) self.show_at(self.unitFlags()[idx], box1) #widget index 6 idx += 1 box1 = gui.widgetBox(box) oasysgui.lineEdit(box1, self, "GRIDEND", label=self.unitLabels()[idx], addSpace=False, valueType=float, validator=QDoubleValidator(), orientation="horizontal", labelWidth=250) self.show_at(self.unitFlags()[idx], box1) #widget index 7 idx += 1 box1 = gui.widgetBox(box) oasysgui.lineEdit(box1, self, "GRIDN", label=self.unitLabels()[idx], addSpace=False, valueType=int, validator=QIntValidator(), orientation="horizontal", labelWidth=250) self.show_at(self.unitFlags()[idx], box1) # widget index 8 idx += 1 box1 = gui.widgetBox(box) gui.comboBox(box1, self, "DUMP_TO_FILE", label=self.unitLabels()[idx], addSpace=True, items=["No", "Yes"], orientation="horizontal") self.show_at(self.unitFlags()[idx], box1) # widget index 9 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "FILE_NAME", label=self.unitLabels()[idx], addSpace=True) self.show_at(self.unitFlags()[idx], box1) gui.rubber(self.controlArea)
def build_gui(self): box = oasysgui.widgetBox(self.controlArea, self.name + " Input Parameters", orientation="vertical", width=self.CONTROL_AREA_WIDTH-5) idx = -1 #widget index 0 idx += 1 box1 = gui.widgetBox(box) gui.comboBox(box1, self, "MODE", label=self.unitLabels()[idx], addSpace=False, items=['Periodic Layers', 'Individual Layers'], valueType=int, orientation="horizontal", labelWidth=250) self.show_at(self.unitFlags()[idx], box1) #widget index 1 idx += 1 box1 = gui.widgetBox(box) gui.comboBox(box1, self, "SCAN", label=self.unitLabels()[idx], addSpace=False, items=['Grazing Angle', 'Photon Energy'], valueType=int, orientation="horizontal", labelWidth=250) self.show_at(self.unitFlags()[idx], box1) #widget index 2 idx += 1 box1 = gui.widgetBox(box) gui.comboBox(box1, self, "F12_FLAG", label=self.unitLabels()[idx], addSpace=False, items=['Create on the fly', 'Use existing file: mlayers.f12'], valueType=int, orientation="horizontal", labelWidth=150) self.show_at(self.unitFlags()[idx], box1) #widget index 3 idx += 1 box1 = gui.widgetBox(box) oasysgui.lineEdit(box1, self, "SUBSTRATE", label=self.unitLabels()[idx], addSpace=False, orientation="horizontal", labelWidth=250) self.show_at(self.unitFlags()[idx], box1) #widget index 4 idx += 1 box1 = gui.widgetBox(box) oasysgui.lineEdit(box1, self, "ODD_MATERIAL", label=self.unitLabels()[idx], addSpace=False, orientation="horizontal", labelWidth=250) self.show_at(self.unitFlags()[idx], box1) #widget index 5 idx += 1 box1 = gui.widgetBox(box) oasysgui.lineEdit(box1, self, "EVEN_MATERIAL", label=self.unitLabels()[idx], addSpace=False, orientation="horizontal", labelWidth=250) self.show_at(self.unitFlags()[idx], box1) #widget index 6 idx += 1 box1 = gui.widgetBox(box) oasysgui.lineEdit(box1, self, "ENERGY", label=self.unitLabels()[idx], addSpace=False, valueType=float, validator=QDoubleValidator(), orientation="horizontal", labelWidth=250) self.show_at(self.unitFlags()[idx], box1) #widget index 7 idx += 1 box1 = gui.widgetBox(box) oasysgui.lineEdit(box1, self, "THETA", label=self.unitLabels()[idx], addSpace=False, valueType=float, validator=QDoubleValidator(), orientation="horizontal", labelWidth=250) self.show_at(self.unitFlags()[idx], box1) #widget index 8 idx += 1 box1 = gui.widgetBox(box) oasysgui.lineEdit(box1, self, "SCAN_STEP", label=self.unitLabels()[idx], addSpace=False, valueType=float, validator=QDoubleValidator(), orientation="horizontal", labelWidth=250) self.show_at(self.unitFlags()[idx], box1) #widget index 9 idx += 1 box1 = gui.widgetBox(box) oasysgui.lineEdit(box1, self, "NPOINTS", label=self.unitLabels()[idx], addSpace=False, valueType=int, validator=QIntValidator(), orientation="horizontal", labelWidth=250) self.show_at(self.unitFlags()[idx], box1) #widget index 10 idx += 1 box1 = gui.widgetBox(box) oasysgui.lineEdit(box1, self, "ODD_THICKNESS", label=self.unitLabels()[idx], addSpace=False, valueType=float, validator=QDoubleValidator(), orientation="horizontal", labelWidth=250) self.show_at(self.unitFlags()[idx], box1) #widget index 11 idx += 1 box1 = gui.widgetBox(box) oasysgui.lineEdit(box1, self, "EVEN_THICKNESS", label=self.unitLabels()[idx], addSpace=False, valueType=float, validator=QDoubleValidator(), orientation="horizontal", labelWidth=250) self.show_at(self.unitFlags()[idx], box1) #widget index 12 idx += 1 box1 = gui.widgetBox(box) oasysgui.lineEdit(box1, self, "NLAYERS", label=self.unitLabels()[idx], addSpace=False, valueType=int, validator=QIntValidator(), orientation="horizontal", labelWidth=250) self.show_at(self.unitFlags()[idx], box1) #widget index 13 idx += 1 box1 = gui.widgetBox(box) file_box = oasysgui.widgetBox(box1, "", addSpace=False, orientation="horizontal", height=25) self.le_file = oasysgui.lineEdit(file_box, self, "FILE", label=self.unitLabels()[idx], addSpace=False, orientation="horizontal") self.show_at(self.unitFlags()[idx], box1) gui.button(file_box, self, "...", callback=self.selectFile) gui.rubber(self.controlArea)
def build_gui(self): box = oasysgui.widgetBox( self.controlArea, self.name + " Input Parameters", orientation="vertical", width=self.CONTROL_AREA_WIDTH - 5 ) idx = -1 # widget index 0 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit( box1, self, "NAME", label=self.unitLabels()[idx], addSpace=False, orientation="horizontal", labelWidth=80 ) self.show_at(self.unitFlags()[idx], box1) # widget index 1 idx += 1 box1 = gui.widgetBox(box) gui.comboBox( box1, self, "SUBSTANCE", label=self.unitLabels()[idx], addSpace=False, items=["Element (Atomic number)", "Element (Symbol)", "Compound (Formula)", "Mixture (F1:F2:F3...)"], valueType=int, orientation="horizontal", callback=self.set_SUBSTANCE, ) self.show_at(self.unitFlags()[idx], box1) # widget index 2 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit( box1, self, "DESCRIPTION", label=self.unitLabels()[idx], addSpace=False, orientation="horizontal", labelWidth=80, ) self.show_at(self.unitFlags()[idx], box1) # widget index 3 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit( box1, self, "FRACTION", label=self.unitLabels()[idx], addSpace=False, orientation="horizontal", labelWidth=80, ) self.show_at(self.unitFlags()[idx], box1) # widget index 4 idx += 1 box1 = gui.widgetBox(box) gui.comboBox( box1, self, "GRID", label=self.unitLabels()[idx], addSpace=False, items=["Standard", "Standard+points", "Points only"], valueType=int, orientation="horizontal", labelWidth=250, ) self.show_at(self.unitFlags()[idx], box1) # widget index 5 idx += 1 box1 = gui.widgetBox(box) gui.comboBox( box1, self, "GRIDINPUT", label=self.unitLabels()[idx], addSpace=False, items=["From Keyboard", "From file"], valueType=int, orientation="horizontal", labelWidth=250, ) self.show_at(self.unitFlags()[idx], box1) # widget index 6 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "GRIDDATA", label=self.unitLabels()[idx], addSpace=False, orientation="horizontal") self.show_at(self.unitFlags()[idx], box1) # widget index 7 idx += 1 box1 = gui.widgetBox(box) gui.comboBox( box1, self, "ELEMENTOUTPUT", label=self.unitLabels()[idx], addSpace=False, items=[ "Cross section [b/atom]", "Cross section [b/atom] & Attenuation coeff [cm2/g]", "Partial interaction coeff & Attenuation coeff [cm2/g]", ], valueType=int, orientation="horizontal", callback=self.set_ELEMENTOUTPUT, ) self.show_at(self.unitFlags()[idx], box1) gui.rubber(self.controlArea)
def __init__(self): super().__init__() geom = QApplication.desktop().availableGeometry() self.setGeometry(QRect(round(geom.width()*0.05), round(geom.height()*0.05), round(min(geom.width()*0.98, self.MAX_WIDTH)), round(min(geom.height()*0.95, self.MAX_HEIGHT)))) self.setMaximumHeight(self.geometry().height()) self.setMaximumWidth(self.geometry().width()) self.controlArea.setFixedWidth(self.CONTROL_AREA_WIDTH) box0 = gui.widgetBox(self.controlArea, "", orientation="horizontal") #widget buttons: compute, set defaults, help gui.button(box0, self, "Compute", callback=self.compute) gui.button(box0, self, "Defaults", callback=self.defaults) gui.button(box0, self, "Help", callback=self.help1) gui.separator(self.controlArea, height=10) box = oasysgui.widgetBox(self.controlArea, self.name + " Input Parameters",orientation="vertical", width=self.CONTROL_AREA_WIDTH-5, height=150) self.xoppy_output = QTextEdit() self.xoppy_output.setReadOnly(True) self.xoppy_output.setFixedHeight(440) self.xoppy_output.setFixedWidth(self.CONTROL_AREA_WIDTH-25) out_box = gui.widgetBox(self.controlArea, "Calculation Output", addSpace=True, orientation="horizontal") out_box.layout().addWidget(self.xoppy_output) idx = -1 #widget index 0 idx += 1 box1 = gui.widgetBox(box) gui.comboBox(box1, self, "FUNCTION", label=self.unitLabels()[idx], addSpace=False, items=['0 Fluorescence line energy', '1 Absorption edge energy', '2 Atomic weight', '3 Elemental density', '4 Total absorption cross section', '5 Photoionization cross section', '6 Partial photoionization cross section', '7 Rayleigh scattering cross section', '8 Compton scattering cross section', '9 Klein-Nishina cross section', '10 Mass energy-absorption cross section', '11 Differential unpolarized Klein-Nishina cross section', '12 Differential unpolarized Thomson cross section', '13 Differential unpolarized Rayleigh cross section', '14 Differential unpolarized Compton cross section', '15 Differential polarized Klein-Nishina cross section', '16 Differential polarized Thomson cross section', '17 Differential polarized Rayleigh cross section', '18 Differential polarized Compton cross section', '19 Atomic form factor', '20 Incoherent scattering function', '21 Momentum transfer function', '22 Coster-Kronig transition probability', '23 Fluorescence yield', '24 Jump factor', '25 Radiative transition probability', '26 Energy after Compton scattering', '27 Anomalous scattering factor φ′', '28 Anomalous scattering factor φ″', '29 Electronic configuration', '30 X-ray fluorescence production cross section (with full cascade)', '31 X-ray fluorescence production cross section (with radiative cascade)', '32 X-ray fluorescence production cross section (with non-radiative cascade)', '33 X-ray fluorescence production cross section (without cascade)', '34 Atomic level width', '35 Auger yield', '36 Auger rate', '37 Refractive index', '38 Compton broadening profile', '39 Partial Compton broadening profile', '40 List of NIST catalog compounds', '41 Get composition of NIST catalog compound', '42 List of X-ray emitting radionuclides', '43 Get excitation profile of X-ray emitting radionuclide', '44 Compoundparser'], valueType=int, orientation="horizontal", labelWidth=250) self.show_at(self.unitFlags()[idx], box1) #widget index 1 idx += 1 box1 = gui.widgetBox(box) oasysgui.lineEdit(box1, self, "ELEMENT", label=self.unitLabels()[idx], addSpace=False, valueType=int, validator=QIntValidator(), orientation="horizontal", labelWidth=250) self.show_at(self.unitFlags()[idx], box1) #widget index 2 idx += 1 box1 = gui.widgetBox(box) oasysgui.lineEdit(box1, self, "ELEMENTORCOMPOUND", label=self.unitLabels()[idx], addSpace=False, orientation="horizontal", labelWidth=250) self.show_at(self.unitFlags()[idx], box1) #widget index 3 idx += 1 box1 = gui.widgetBox(box) oasysgui.lineEdit(box1, self, "COMPOUND", label=self.unitLabels()[idx], addSpace=False, orientation="horizontal", labelWidth=250) self.show_at(self.unitFlags()[idx], box1) #widget index 4 idx += 1 box1 = gui.widgetBox(box) gui.comboBox(box1, self, "TRANSITION_IUPAC_OR_SIEGBAHN", label=self.unitLabels()[idx], addSpace=False, items=['IUPAC', 'SIEGBAHN', 'ALL TRANSITIONS'], valueType=int, orientation="horizontal", labelWidth=250) self.show_at(self.unitFlags()[idx], box1) #widget index 5 idx += 1 box1 = gui.widgetBox(box) gui.comboBox(box1, self, "TRANSITION_IUPAC_TO", label=self.unitLabels()[idx], addSpace=False, items=['K', 'L1', 'L2', 'L3', 'M1', 'M2', 'M3', 'M4', 'M5', 'N1', 'N2', 'N3', 'N4', 'N5', 'N6', 'N7', 'O1', 'O2', 'O3', 'O4', 'O5', 'O6', 'O7', 'P1', 'P2', 'P3', 'P4', 'P5', 'Q1', 'Q2', 'Q3'], valueType=int, orientation="horizontal", labelWidth=250) self.show_at(self.unitFlags()[idx], box1) #widget index 6 idx += 1 box1 = gui.widgetBox(box) gui.comboBox(box1, self, "TRANSITION_IUPAC_FROM", label=self.unitLabels()[idx], addSpace=False, items=['K', 'L1', 'L2', 'L3', 'M1', 'M2', 'M3', 'M4', 'M5', 'N1', 'N2', 'N3', 'N4', 'N5', 'N6', 'N7', 'O1', 'O2', 'O3', 'O4', 'O5', 'O6', 'O7', 'P1', 'P2', 'P3', 'P4', 'P5', 'Q1', 'Q2', 'Q3'], valueType=int, orientation="horizontal", labelWidth=250) self.show_at(self.unitFlags()[idx], box1) #widget index 7 idx += 1 box1 = gui.widgetBox(box) gui.comboBox(box1, self, "TRANSITION_SIEGBAHN", label=self.unitLabels()[idx], addSpace=False, items=['KA1_LINE', 'KA2_LINE', 'KB1_LINE', 'KB2_LINE', 'KB3_LINE', 'KB4_LINE', 'KB5_LINE', 'LA1_LINE', 'LA2_LINE', 'LB1_LINE', 'LB2_LINE', 'LB3_LINE', 'LB4_LINE', 'LB5_LINE', 'LB6_LINE', 'LB7_LINE', 'LB9_LINE', 'LB10_LINE', 'LB15_LINE', 'LB17_LINE', 'LG1_LINE', 'LG2_LINE', 'LG3_LINE', 'LG4_LINE', 'LG5_LINE', 'LG6_LINE', 'LG8_LINE', 'LE_LINE', 'LL_LINE', 'LS_LINE', 'LT_LINE', 'LU_LINE', 'LV_LINE'], valueType=int, orientation="horizontal", labelWidth=250) self.show_at(self.unitFlags()[idx], box1) #widget index 8 idx += 1 box1 = gui.widgetBox(box) gui.comboBox(box1, self, "SHELL", label=self.unitLabels()[idx], addSpace=False, items=['All shells', 'K_SHELL', 'L1_SHELL', 'L2_SHELL', 'L3_SHELL', 'M1_SHELL', 'M2_SHELL', 'M3_SHELL', 'M4_SHELL', 'M5_SHELL', 'N1_SHELL', 'N2_SHELL', 'N3_SHELL', 'N4_SHELL', 'N5_SHELL', 'N6_SHELL', 'N7_SHELL', 'O1_SHELL', 'O2_SHELL', 'O3_SHELL', 'O4_SHELL', 'O5_SHELL', 'O6_SHELL', 'O7_SHELL', 'P1_SHELL', 'P2_SHELL', 'P3_SHELL', 'P4_SHELL', 'P5_SHELL', 'Q1_SHELL', 'Q2_SHELL', 'Q3_SHELL'], valueType=int, orientation="horizontal", labelWidth=250) self.show_at(self.unitFlags()[idx], box1) #widget index 9 idx += 1 box1 = gui.widgetBox(box) oasysgui.lineEdit(box1, self, "ENERGY", label=self.unitLabels()[idx], addSpace=False, valueType=float, validator=QDoubleValidator(), orientation="horizontal", labelWidth=250) self.show_at(self.unitFlags()[idx], box1) self.process_showers() gui.rubber(self.controlArea)
def __init__(self): super().__init__() self.controlArea.setFixedWidth(self.CONTROL_AREA_WIDTH) tabs_setting = oasysgui.tabWidget(self.controlArea) tabs_setting.setFixedHeight(self.TABS_AREA_HEIGHT) tabs_setting.setFixedWidth(self.CONTROL_AREA_WIDTH-5) tab_bas = oasysgui.createTabPage(tabs_setting, "Basic Setting") tab_sou = oasysgui.createTabPage(tabs_setting, "Source Setting") left_box_1 = oasysgui.widgetBox(tab_bas, "Monte Carlo and Energy Spectrum", addSpace=True, orientation="vertical") oasysgui.lineEdit(left_box_1, self, "number_of_rays", "Number of Rays", tooltip="Number of Rays", labelWidth=260, valueType=int, orientation="horizontal") oasysgui.lineEdit(left_box_1, self, "seed", "Seed", tooltip="Seed", labelWidth=260, valueType=int, orientation="horizontal") oasysgui.lineEdit(left_box_1, self, "e_min", "Minimum Energy [eV]", tooltip="Minimum Energy [eV]", labelWidth=260, valueType=float, orientation="horizontal") oasysgui.lineEdit(left_box_1, self, "e_max", "Maximum Energy [eV]", tooltip="Maximum Energy [eV]", labelWidth=260, valueType=float, orientation="horizontal") gui.comboBox(left_box_1, self, "generate_polarization_combo", label="Generate Polarization", items=["Only Parallel", "Only Perpendicular", "Total"], labelWidth=260, orientation="horizontal") left_box_2 = oasysgui.widgetBox(tab_sou, "Machine Parameters", addSpace=True, orientation="vertical") self.le_sigma_x = oasysgui.lineEdit(left_box_2, self, "sigma_x", "Sigma X", labelWidth=260, tooltip="Sigma X", valueType=float, orientation="horizontal") self.le_sigma_z = oasysgui.lineEdit(left_box_2, self, "sigma_z", "Sigma Z", labelWidth=260, tooltip="Sigma Z", valueType=float, orientation="horizontal") self.le_emittance_x = oasysgui.lineEdit(left_box_2, self, "emittance_x", "Emittance X", labelWidth=260, tooltip="Emittance X", valueType=float, orientation="horizontal") self.le_emittance_z = oasysgui.lineEdit(left_box_2, self, "emittance_z", "Emittance Z", labelWidth=260, tooltip="Emittance Z", valueType=float, orientation="horizontal") oasysgui.lineEdit(left_box_2, self, "energy", "Energy [GeV]", tooltip="Energy [GeV]", labelWidth=260, valueType=float, orientation="horizontal") self.le_distance_from_waist_x = oasysgui.lineEdit(left_box_2, self, "distance_from_waist_x", "Distance from Waist X", labelWidth=260, tooltip="Distance from Waist X", valueType=float, orientation="horizontal") self.le_distance_from_waist_z = oasysgui.lineEdit(left_box_2, self, "distance_from_waist_z", "Distance from Waist Z", labelWidth=260, tooltip="Distance from Waist Z", valueType=float, orientation="horizontal") left_box_3 = oasysgui.widgetBox(tab_sou, "Bending Magnet Parameters", addSpace=True, orientation="vertical") oasysgui.lineEdit(left_box_3, self, "magnetic_radius", "Magnetic Radius [m]", labelWidth=260, callback=self.calculateMagneticField, tooltip="Magnetic Radius [m]", valueType=float, orientation="horizontal") oasysgui.lineEdit(left_box_3, self, "magnetic_field", "Magnetic Field [T]", labelWidth=260, callback=self.calculateMagneticRadius, tooltip="Magnetic Field [T]", valueType=float, orientation="horizontal") oasysgui.lineEdit(left_box_3, self, "horizontal_half_divergence_from", "Horizontal half-divergence [rads] From [+]", labelWidth=260, tooltip="Horizontal half-divergence [rads] From [+]", valueType=float, orientation="horizontal") oasysgui.lineEdit(left_box_3, self, "horizontal_half_divergence_to", "Horizontal half-divergence [rads] To [-]", labelWidth=260, tooltip="Horizontal half-divergence [rads] To [-]", valueType=float, orientation="horizontal") oasysgui.lineEdit(left_box_3, self, "max_vertical_half_divergence_from", "Max vertical half-divergence [rads] From [+]", labelWidth=260, tooltip="Max vertical half-divergence [rads] From [+]", valueType=float, orientation="horizontal") oasysgui.lineEdit(left_box_3, self, "max_vertical_half_divergence_to", "Max vertical half-divergence [rads] To [-]", labelWidth=260, tooltip="Max vertical half-divergence [rads] To [-]", valueType=float, orientation="horizontal") gui.comboBox(left_box_3, self, "calculation_mode_combo", label="Calculation Mode", items=["Precomputed", "Exact"], labelWidth=260, orientation="horizontal") left_box_4 = oasysgui.widgetBox(tab_bas, "Reject Rays", addSpace=True, orientation="vertical", height=120) gui.comboBox(left_box_4, self, "optimize_source", label="Optimize Source", items=["No", "Using file with phase/space volume)", "Using file with slit/acceptance"], labelWidth=120, callback=self.set_OptimizeSource, orientation="horizontal") self.optimize_file_name_box = oasysgui.widgetBox(left_box_4, "", addSpace=False, orientation="vertical") file_box = oasysgui.widgetBox(self.optimize_file_name_box, "", addSpace=True, orientation="horizontal", height=25) self.le_optimize_file_name = oasysgui.lineEdit(file_box, self, "optimize_file_name", "File Name", labelWidth=100, valueType=str, orientation="horizontal") gui.button(file_box, self, "...", callback=self.selectOptimizeFile) oasysgui.lineEdit(self.optimize_file_name_box, self, "max_number_of_rejected_rays", "Max number of rejected rays (set 0 for infinity)", labelWidth=280, valueType=int, orientation="horizontal") self.set_OptimizeSource() adv_other_box = oasysgui.widgetBox(tab_bas, "Optional file output", addSpace=False, orientation="vertical") gui.comboBox(adv_other_box, self, "file_to_write_out", label="Files to write out", labelWidth=120, items=["None", "Begin.dat", "Debug (begin.dat + start.xx/end.xx)"], sendSelectedValue=False, orientation="horizontal") gui.rubber(self.controlArea) gui.rubber(self.mainArea)
def __init__(self): super().__init__() box0 = gui.widgetBox(self.controlArea, " ",orientation="horizontal") #widget buttons: compute, set defaults, help gui.button(box0, self, "Compute", callback=self.compute) gui.button(box0, self, "Defaults", callback=self.defaults) gui.button(box0, self, "Help", callback=self.help1) self.process_showers() box = gui.widgetBox(self.controlArea, " ",orientation="vertical") idx = -1 #widget index 0 idx += 1 box1 = gui.widgetBox(box) gui.comboBox(box1, self, "FIELD", label=self.unitLabels()[idx], addSpace=True, items=['Sinusoidal', 'B from file', 'B from harmonics'], valueType=int, orientation="horizontal") self.show_at(self.unitFlags()[idx], box1) #widget index 1 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "NPERIODS", label=self.unitLabels()[idx], addSpace=True, valueType=int, validator=QIntValidator()) self.show_at(self.unitFlags()[idx], box1) #widget index 2 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "ULAMBDA", label=self.unitLabels()[idx], addSpace=True, valueType=float, validator=QDoubleValidator()) self.show_at(self.unitFlags()[idx], box1) #widget index 3 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "K", label=self.unitLabels()[idx], addSpace=True, valueType=float, validator=QDoubleValidator()) self.show_at(self.unitFlags()[idx], box1) #widget index 4 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "ENERGY", label=self.unitLabels()[idx], addSpace=True, valueType=float, validator=QDoubleValidator()) self.show_at(self.unitFlags()[idx], box1) #widget index 5 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "PHOT_ENERGY_MIN", label=self.unitLabels()[idx], addSpace=True, valueType=float, validator=QDoubleValidator()) self.show_at(self.unitFlags()[idx], box1) #widget index 6 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "PHOT_ENERGY_MAX", label=self.unitLabels()[idx], addSpace=True, valueType=float, validator=QDoubleValidator()) self.show_at(self.unitFlags()[idx], box1) #widget index 7 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "NPOINTS", label=self.unitLabels()[idx], addSpace=True, valueType=int, validator=QIntValidator()) self.show_at(self.unitFlags()[idx], box1) #widget index 8 idx += 1 box1 = gui.widgetBox(box) gui.comboBox(box1, self, "LOGPLOT", label=self.unitLabels()[idx], addSpace=True, items=['Lin', 'Log'], valueType=int, orientation="horizontal") self.show_at(self.unitFlags()[idx], box1) #widget index 9 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "NTRAJPOINTS", label=self.unitLabels()[idx], addSpace=True, valueType=int, validator=QIntValidator()) self.show_at(self.unitFlags()[idx], box1) #widget index 10 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "CURRENT", label=self.unitLabels()[idx], addSpace=True, valueType=float, validator=QDoubleValidator()) self.show_at(self.unitFlags()[idx], box1) #widget index 11 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "FILE", label=self.unitLabels()[idx], addSpace=True) self.show_at(self.unitFlags()[idx], box1) gui.rubber(self.controlArea)
def __init__(self): super().__init__() box0 = gui.widgetBox(self.controlArea, " ",orientation="horizontal") #widget buttons: compute, set defaults, help gui.button(box0, self, "Compute", callback=self.compute) gui.button(box0, self, "Defaults", callback=self.defaults) gui.button(box0, self, "Help", callback=self.help1) self.process_showers() box = gui.widgetBox(self.controlArea, " ",orientation="vertical") idx = -1 #widget index 0 idx += 1 box1 = gui.widgetBox(box) gui.comboBox(box1, self, "DATASETS", label=self.unitLabels()[idx], addSpace=True, items=['all', 'f1f2_Windt.dat', 'f1f2_EPDL97.dat'], valueType=int, orientation="horizontal") self.show_at(self.unitFlags()[idx], box1) #widget index 1 idx += 1 box1 = gui.widgetBox(box) gui.comboBox(box1, self, "MAT_FLAG", label=self.unitLabels()[idx], addSpace=True, items=['Element(formula)', 'Mixture(formula)', 'Mixture(table)'], valueType=int, orientation="horizontal") self.show_at(self.unitFlags()[idx], box1) #widget index 2 idx += 1 box1 = gui.widgetBox(box) gui.comboBox(box1, self, "MAT_LIST", label=self.unitLabels()[idx], addSpace=True, items=['B4C', 'BeO', 'BN', 'Cr2O3', 'CsI', 'GaAs', 'LiF', 'MgO', 'MoSi2', 'TiN', 'Sapphire', 'Polyimide', 'Polypropylene', 'PMMA', 'Polycarbonate', 'Kimfol', 'Mylar', 'Teflon', 'Parylene-C', 'Parylene-N', 'Fluorite', 'Salt', 'NiO', 'SiC', 'Si3N4', 'Silica', 'Quartz', 'Rutile', 'ULE', 'Zerodur', 'water', 'protein', 'lipid', 'nucleosome', 'dna', 'helium', 'chromatin', 'air', 'pmma', 'nitride', 'graphite', 'nickel', 'beryl', 'copper', 'quartz', 'aluminum', 'gold', 'ice', 'carbon', 'polystyrene', 'A-150 TISSUE-EQUIVALENT PLASTIC', 'ADIPOSE TISSUE (ICRU-44)', 'AIR, DRY (NEAR SEA LEVEL)', 'ALANINE', 'B-100 BONE-EQUIVALENT PLASTIC', 'BAKELITE', 'BLOOD, WHOLE (ICRU-44)', 'BONE, CORTICAL (ICRU-44)', 'BRAIN, GREY/WHITE MATTER (ICRU-44)', 'BREAST TISSUE (ICRU-44)', 'C-552 AIR-EQUIVALENT PLASTIC', 'CADMIUM TELLURIDE', 'CALCIUM FLUORIDE', 'CALCIUM SULFATE', '15e-3 M CERIC AMMONIUM SULFATE SOLUTION', 'CESIUM IODIDE', 'CONCRETE, ORDINARY', 'CONCRETE, BARITE (TYPE BA)', 'EYE LENS (ICRU-44)', 'FERROUS SULFATE (STANDARD FRICKE)', 'GADOLINIUM OXYSULFIDE', 'GAFCHROMIC SENSOR', 'GALLIUM ARSENIDE', 'GLASS, BOROSILICATE (PYREX)', 'GLASS, LEAD', 'LITHIUM FLUORIDE', 'LITHIUM TETRABORATE', 'LUNG TISSUE (ICRU-44)', 'MAGNESIUM TETRABORATE', 'MERCURIC IODIDE', 'MUSCLE, SKELETAL (ICRU-44)', 'OVARY (ICRU-44)', 'PHOTOGRAPHIC EMULSION (KODAK TYPE AA)', 'PHOTOGRAPHIC EMULSION (STANDARD NUCLEAR)', 'PLASTIC SCINTILLATOR (VINYLTOLUENE)', 'POLYETHYLENE', 'POLYETHYLENE TEREPHTHALATE (MYLAR)', 'POLYMETHYL METHACRYLATE', 'POLYSTYRENE', 'POLYTETRAFLUOROETHYLENE (TEFLON)', 'POLYVINYL CHLORIDE', 'RADIOCHROMIC DYE FILM (NYLON BASE)', 'TESTIS (ICRU-44)', 'TISSUE, SOFT (ICRU-44)', 'TISSUE, SOFT (ICRU FOUR-COMPONENT)', 'TISSUE-EQUIVALENT GAS (METHANE BASED)', 'TISSUE-EQUIVALENT GAS (PROPANE BASED)', 'WATER, LIQUID'], valueType=int, orientation="horizontal") self.show_at(self.unitFlags()[idx], box1) #widget index 3 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "DESCRIPTOR", label=self.unitLabels()[idx], addSpace=True) self.show_at(self.unitFlags()[idx], box1) #widget index 4 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "DENSITY", label=self.unitLabels()[idx], addSpace=True, valueType=float, validator=QDoubleValidator()) self.show_at(self.unitFlags()[idx], box1) #widget index 5 idx += 1 box1 = gui.widgetBox(box) gui.comboBox(box1, self, "CALCULATE", label=self.unitLabels()[idx], addSpace=True, items=['all', 'f1', 'f2', 'delta', 'beta *see help*', 'mu [cm^-1] *see help*', 'mu [cm^2/g] *see help*', 'Cross Section[barn] *see help*', 'reflectivity-s', 'reflectivity-p', 'reflectivity-unpol', 'delta/beta **see help**'], valueType=int, orientation="horizontal") self.show_at(self.unitFlags()[idx], box1) #widget index 6 idx += 1 box1 = gui.widgetBox(box) gui.comboBox(box1, self, "GRID", label=self.unitLabels()[idx], addSpace=True, items=['Standard', 'User defined', 'Single Value'], valueType=int, orientation="horizontal") self.show_at(self.unitFlags()[idx], box1) #widget index 7 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "GRIDSTART", label=self.unitLabels()[idx], addSpace=True, valueType=float, validator=QDoubleValidator()) self.show_at(self.unitFlags()[idx], box1) #widget index 8 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "GRIDEND", label=self.unitLabels()[idx], addSpace=True, valueType=float, validator=QDoubleValidator()) self.show_at(self.unitFlags()[idx], box1) #widget index 9 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "GRIDN", label=self.unitLabels()[idx], addSpace=True, valueType=int, validator=QIntValidator()) self.show_at(self.unitFlags()[idx], box1) #widget index 10 idx += 1 box1 = gui.widgetBox(box) gui.comboBox(box1, self, "THETAGRID", label=self.unitLabels()[idx], addSpace=True, items=['Single value', 'User Defined'], valueType=int, orientation="horizontal") self.show_at(self.unitFlags()[idx], box1) #widget index 11 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "ROUGH", label=self.unitLabels()[idx], addSpace=True, valueType=float, validator=QDoubleValidator()) self.show_at(self.unitFlags()[idx], box1) #widget index 12 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "THETA1", label=self.unitLabels()[idx], addSpace=True, valueType=float, validator=QDoubleValidator()) self.show_at(self.unitFlags()[idx], box1) #widget index 13 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "THETA2", label=self.unitLabels()[idx], addSpace=True, valueType=float, validator=QDoubleValidator()) self.show_at(self.unitFlags()[idx], box1) #widget index 14 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "THETAN", label=self.unitLabels()[idx], addSpace=True, valueType=int, validator=QIntValidator()) self.show_at(self.unitFlags()[idx], box1) gui.rubber(self.controlArea)
def build_gui(self): box = oasysgui.widgetBox(self.controlArea, self.name + " Input Parameters", orientation="vertical", width=self.CONTROL_AREA_WIDTH-5) idx = -1 #widget index 0 idx += 1 box1 = gui.widgetBox(box) gui.comboBox(box1, self, "CRYSTAL_MATERIAL", label=self.unitLabels()[idx], addSpace=False, items=['Silicon', 'Germanium', 'Diamond', 'GaAs', 'GaP', 'InAs', 'InP', 'InSb', 'SiC', 'CsF', 'KCl', 'LiF', 'NaCl', 'Graphite', 'Beryllium'], valueType=int, orientation="horizontal", labelWidth=250) self.show_at(self.unitFlags()[idx], box1) #widget index 1 idx += 1 box1 = gui.widgetBox(box) gui.comboBox(box1, self, "MODE", label=self.unitLabels()[idx], addSpace=False, items=['Reflectivity in Bragg case', 'Transmission in Bragg case', 'Reflectivity in Laue case', 'Transmission in Laue case'], valueType=int, orientation="horizontal", labelWidth=250) self.show_at(self.unitFlags()[idx], box1) #widget index 2 idx += 1 box1 = gui.widgetBox(box) oasysgui.lineEdit(box1, self, "ENERGY", label=self.unitLabels()[idx], addSpace=False, valueType=float, validator=QDoubleValidator(), orientation="horizontal", labelWidth=250) self.show_at(self.unitFlags()[idx], box1) #widget index 3 idx += 1 box1 = gui.widgetBox(box) oasysgui.lineEdit(box1, self, "MILLER_INDEX_H", label=self.unitLabels()[idx], addSpace=False, valueType=int, validator=QIntValidator(), orientation="horizontal", labelWidth=250) self.show_at(self.unitFlags()[idx], box1) #widget index 4 idx += 1 box1 = gui.widgetBox(box) oasysgui.lineEdit(box1, self, "MILLER_INDEX_K", label=self.unitLabels()[idx], addSpace=False, valueType=int, validator=QIntValidator(), orientation="horizontal", labelWidth=250) self.show_at(self.unitFlags()[idx], box1) #widget index 5 idx += 1 box1 = gui.widgetBox(box) oasysgui.lineEdit(box1, self, "MILLER_INDEX_L", label=self.unitLabels()[idx], addSpace=False, valueType=int, validator=QIntValidator(), orientation="horizontal", labelWidth=250) self.show_at(self.unitFlags()[idx], box1) #widget index 6 idx += 1 box1 = gui.widgetBox(box) oasysgui.lineEdit(box1, self, "ASYMMETRY_ANGLE", label=self.unitLabels()[idx], addSpace=False, valueType=float, validator=QDoubleValidator(), orientation="horizontal", labelWidth=250) self.show_at(self.unitFlags()[idx], box1) #widget index 7 idx += 1 box1 = gui.widgetBox(box) oasysgui.lineEdit(box1, self, "THICKNESS", label=self.unitLabels()[idx], addSpace=False, valueType=float, validator=QDoubleValidator(), orientation="horizontal", labelWidth=250) self.show_at(self.unitFlags()[idx], box1) #widget index 8 idx += 1 box1 = gui.widgetBox(box) oasysgui.lineEdit(box1, self, "TEMPERATURE", label=self.unitLabels()[idx], addSpace=False, valueType=float, validator=QDoubleValidator(), orientation="horizontal", labelWidth=250) self.show_at(self.unitFlags()[idx], box1) #widget index 9 idx += 1 box1 = gui.widgetBox(box) oasysgui.lineEdit(box1, self, "NPOINTS", label=self.unitLabels()[idx], addSpace=False, valueType=int, validator=QIntValidator(), orientation="horizontal", labelWidth=250) self.show_at(self.unitFlags()[idx], box1) #widget index 10 idx += 1 box1 = gui.widgetBox(box) gui.comboBox(box1, self, "SCALE", label=self.unitLabels()[idx], addSpace=False, items=['Automatic', 'External'], valueType=int, orientation="horizontal", labelWidth=250) self.show_at(self.unitFlags()[idx], box1) #widget index 11 idx += 1 box1 = gui.widgetBox(box) oasysgui.lineEdit(box1, self, "XFROM", label=self.unitLabels()[idx], addSpace=False, valueType=float, validator=QDoubleValidator(), orientation="horizontal", labelWidth=250) self.show_at(self.unitFlags()[idx], box1) #widget index 12 idx += 1 box1 = gui.widgetBox(box) oasysgui.lineEdit(box1, self, "XTO", label=self.unitLabels()[idx], addSpace=False, valueType=float, validator=QDoubleValidator(), orientation="horizontal", labelWidth=250) self.show_at(self.unitFlags()[idx], box1) gui.rubber(self.controlArea)
def __init__(self): super().__init__() left_box_1 = oasysgui.widgetBox(self.controlArea, "X0h-Search Request Form", addSpace=True, orientation="vertical", width=400, height=630) left_box_2 = oasysgui.widgetBox(left_box_1, "X-rays", addSpace=True, orientation="horizontal", width=380, height=110) left_box_2_1 = oasysgui.widgetBox(left_box_2, "", addSpace=True, orientation="vertical", width=150, height=110) gui.radioButtons(left_box_2_1, self, "xway", ["Wavelength (Å)", "Energy (keV)", "Characteristic line"], callback=self.set_xway ) self.box_wave = oasysgui.widgetBox(left_box_2, "", addSpace=True, orientation="vertical", width=190) gui.separator(self.box_wave, height=10) oasysgui.lineEdit(self.box_wave, self, "wave", label="", labelWidth=0, addSpace=False, valueType=float, orientation="horizontal") self.box_line = oasysgui.widgetBox(left_box_2, "", addSpace=True, orientation="horizontal", width=190, height=110) gui.separator(self.box_line, height=120) XRayServerGui.combobox_text(self.box_line, self, "line", label="", labelWidth=0, items=self.get_lines(), sendSelectedValue=True, orientation="horizontal", selectedValue=self.line) button = gui.button( self.box_line, self, "?", callback=self.help_lines) button.setFixedWidth(15) self.set_xway() left_box_3 = oasysgui.widgetBox(left_box_1, "Crystal", addSpace=True, orientation="horizontal", width=380, height=60) self.box_crystal = oasysgui.widgetBox(left_box_3, "", addSpace=True, orientation="horizontal", width=210) XRayServerGui.combobox_text(self.box_crystal, self, "code", label="", labelWidth=0, items=self.get_crystals(), sendSelectedValue=True, orientation="horizontal", selectedValue=self.code) button = gui.button( self.box_crystal, self, "?", callback=self.help_crystals) button.setFixedWidth(15) left_box_4 = oasysgui.widgetBox(left_box_1, "Bragg Planes Range", addSpace=True, orientation="horizontal", width=380, height=60) oasysgui.lineEdit(left_box_4, self, "hkl11", label="From", labelWidth=50, addSpace=False, valueType=int, orientation="horizontal") oasysgui.lineEdit(left_box_4, self, "hkl12", label=" ", labelWidth=1, addSpace=False, valueType=int, orientation="horizontal") oasysgui.lineEdit(left_box_4, self, "hkl13", label=" ", labelWidth=1, addSpace=False, valueType=int, orientation="horizontal") oasysgui.lineEdit(left_box_4, self, "hkl21", label=" To", labelWidth=50, addSpace=False, valueType=int, orientation="horizontal") oasysgui.lineEdit(left_box_4, self, "hkl22", label=" ", labelWidth=1, addSpace=False, valueType=int, orientation="horizontal") oasysgui.lineEdit(left_box_4, self, "hkl23", label=" ", labelWidth=1, addSpace=False, valueType=int, orientation="horizontal") left_box_7 = oasysgui.widgetBox(left_box_1, "Bragg Angle Range", addSpace=True, orientation="horizontal", width=380, height=60) oasysgui.lineEdit(left_box_7, self, "qb1", label="From", labelWidth=80, addSpace=False, valueType=float, orientation="horizontal") oasysgui.lineEdit(left_box_7, self, "qb2", label=" To", labelWidth=80, addSpace=False, valueType=float, orientation="horizontal") tab_central = oasysgui.tabWidget(left_box_1) tab_1 = oasysgui.createTabPage(tab_central, "Intensity Control") tab_2 = oasysgui.createTabPage(tab_central, "Find only Bragg planes making certain angles to the surface") left_box_5 = oasysgui.widgetBox(tab_1, "", addSpace=True, orientation="vertical", width=370, height=250) gui.separator(left_box_5) oasysgui.lineEdit(left_box_5, self, "prcmin", label="Minimum |xh/x0| (%)", labelWidth=250, addSpace=False, valueType=float, orientation="horizontal") left_box_5_1 = oasysgui.widgetBox(left_box_5, "Database Options for dispersion corrections df1, df2", addSpace=True, orientation="vertical", width=370, height=185) gui.radioButtons(left_box_5_1, self, "df1df2", ["Auto (Henke at low energy, X0h at mid, Brennan-Cowan\nat high)", "Use X0h data (5-25 keV or 0.5-2.5 A), recommended for\nBragg diffraction", "Use Henke data (0.01-30 keV or 0.4-1200 A),\nrecommended for soft x-rays", "Use Brennan-Cowan data (0.03-700 keV or 0.02-400 A)"]) left_box_6 = oasysgui.widgetBox(tab_2, "", addSpace=True, orientation="vertical", width=370, height=255) gui.separator(left_box_6) left_box_6_1 = oasysgui.widgetBox(left_box_6, "", addSpace=False, orientation="horizontal", width=370, height=30) oasysgui.lineEdit(left_box_6_1, self, "base1", label="Surface Plane Indices", labelWidth=200, addSpace=False, valueType=int, orientation="horizontal") oasysgui.lineEdit(left_box_6_1, self, "base2", label=" ", labelWidth=1, addSpace=False, valueType=int, orientation="horizontal") oasysgui.lineEdit(left_box_6_1, self, "base3", label=" ", labelWidth=1, addSpace=False, valueType=int, orientation="horizontal") gui.radioButtons(left_box_6, self, "modesearch", ["Planes make angles from Theta1 to Theta2", "Planes make angles from Theta1 to (Bragg_Angle - Theta2)", "Planes make angles from (Bragg_Angle - Theta1)\nto (Bragg_Angle - Theta2)"]) gui.separator(left_box_6, height=10) left_box_6_2 = oasysgui.widgetBox(left_box_6, "", addSpace=True, orientation="horizontal", width=370, height=30) oasysgui.lineEdit(left_box_6_2, self, "q1", label="Theta1", labelWidth=80, addSpace=False, valueType=float, orientation="horizontal") oasysgui.lineEdit(left_box_6_2, self, "q2", label=" Theta2", labelWidth=80, addSpace=False, valueType=float, orientation="horizontal") button = gui.button(self.controlArea, self, "Find Planes!", callback=self.submit) button.setFixedHeight(30) gui.rubber(self.controlArea) self.tabs_widget = oasysgui.tabWidget(self.mainArea) self.tab_output = oasysgui.createTabPage(self.tabs_widget, "X-ray Server Ouput") self.x0h_output = QWebView(self.tab_output) self.tab_output.layout().addWidget(self.x0h_output) self.x0h_output.setFixedHeight(640) self.x0h_output.setFixedWidth(740)
def __init__(self): self.setFixedWidth(590) self.setFixedHeight(550) left_box_1 = oasysgui.widgetBox(self.controlArea, "CCD Image", addSpace=True, orientation="vertical") gui.comboBox(left_box_1, self, "is_textual", label="Image Type", labelWidth=250, items=["JPEG/PNG", "Textual"], sendSelectedValue=False, orientation="horizontal", callback=self.setTextual) ######################################## self.select_file_box_1 = oasysgui.widgetBox(left_box_1, "Textual Image Parameters", addSpace=True, orientation="horizontal", height=250) self.le_image_txt_file_name = oasysgui.lineEdit(self.select_file_box_1, self, "image_file_name", "Image File Name", labelWidth=120, valueType=str, orientation="horizontal") self.le_image_txt_file_name.setFixedWidth(300) gui.button(self.select_file_box_1, self, "...", callback=self.selectTxtFile) self.select_file_box_2 = oasysgui.widgetBox(left_box_1, "Image Parameters", addSpace=True, orientation="vertical", height=250) select_file_box_2_int = oasysgui.widgetBox(self.select_file_box_2, "", addSpace=True, orientation="horizontal") self.le_image_file_name = oasysgui.lineEdit(select_file_box_2_int, self, "image_file_name", "Image File Name", labelWidth=120, valueType=str, orientation="horizontal") self.le_image_file_name.setFixedWidth(300) gui.button(select_file_box_2_int, self, "...", callback=self.selectFile) figure_box = oasysgui.widgetBox(self.select_file_box_2, "Preview", addSpace=True, orientation="vertical", width=350, height=180) self.preview_box = QtGui.QLabel("") self.preview_box.setFixedHeight(100) figure_box.layout().addWidget(self.preview_box) le = oasysgui.lineEdit(figure_box, self, "number_of_x_pixels", "Number of x Pixels", labelWidth=200, valueType=int, orientation="horizontal") le.setReadOnly(True) font = QtGui.QFont(le.font()) font.setBold(True) le.setFont(font) palette = QtGui.QPalette(le.palette()) # make a copy of the palette palette.setColor(QtGui.QPalette.Text, QtGui.QColor('dark blue')) palette.setColor(QtGui.QPalette.Base, QtGui.QColor(243, 240, 160)) le.setPalette(palette) le = oasysgui.lineEdit(figure_box, self, "number_of_z_pixels", "Number of z Pixels", labelWidth=200, valueType=int, orientation="horizontal") le.setReadOnly(True) font = QtGui.QFont(le.font()) font.setBold(True) le.setFont(font) palette = QtGui.QPalette(le.palette()) # make a copy of the palette palette.setColor(QtGui.QPalette.Text, QtGui.QColor('dark blue')) palette.setColor(QtGui.QPalette.Base, QtGui.QColor(243, 240, 160)) le.setPalette(palette) ######################################## self.setTextual() self.loadImage() oasysgui.lineEdit(left_box_1, self, "pixel_size", "Pixel Size [um]", labelWidth=200, valueType=float, orientation="horizontal") oasysgui.lineEdit(left_box_1, self, "number_of_x_bins", "Number of Bin per Pixel [x]", labelWidth=200, valueType=int, orientation="horizontal") oasysgui.lineEdit(left_box_1, self, "number_of_z_bins", "Number of Bin per Pixel [z]", labelWidth=200, valueType=int, orientation="horizontal") gui.checkBox(left_box_1, self, "flip_vertically", "Flip Vertically") gui.checkBox(left_box_1, self, "flip_horizontally", "Flip Horizontally") gui.separator(self.controlArea) button = gui.button(self.controlArea, self, "Convert To Beam", callback=self.convertToBeam) button.setFixedHeight(45) gui.rubber(self.controlArea)
def __init__(self): super().__init__() box0 = gui.widgetBox(self.controlArea, " ",orientation="horizontal") #widget buttons: compute, set defaults, help gui.button(box0, self, "Compute", callback=self.compute) gui.button(box0, self, "Defaults", callback=self.defaults) gui.button(box0, self, "Help", callback=self.help1) self.process_showers() box = gui.widgetBox(self.controlArea, " ",orientation="vertical") idx = -1 #widget index 0 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "NAME", label=self.unitLabels()[idx], addSpace=True) self.show_at(self.unitFlags()[idx], box1) #widget index 1 idx += 1 box1 = gui.widgetBox(box) gui.comboBox(box1, self, "SUBSTANCE", label=self.unitLabels()[idx], addSpace=True, items=['Element (Atomic number)', 'Element (Symbol)', 'Compound (Formula)', 'Mixture (F1:F2:F3...)'], valueType=int, orientation="horizontal") self.show_at(self.unitFlags()[idx], box1) #widget index 2 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "DESCRIPTION", label=self.unitLabels()[idx], addSpace=True) self.show_at(self.unitFlags()[idx], box1) #widget index 3 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "FRACTION", label=self.unitLabels()[idx], addSpace=True) self.show_at(self.unitFlags()[idx], box1) #widget index 4 idx += 1 box1 = gui.widgetBox(box) gui.comboBox(box1, self, "GRID", label=self.unitLabels()[idx], addSpace=True, items=['Standard', 'Standard+points', 'Points only'], valueType=int, orientation="horizontal") self.show_at(self.unitFlags()[idx], box1) #widget index 5 idx += 1 box1 = gui.widgetBox(box) gui.comboBox(box1, self, "GRIDINPUT", label=self.unitLabels()[idx], addSpace=True, items=['From Keyboard', 'From file'], valueType=int, orientation="horizontal") self.show_at(self.unitFlags()[idx], box1) #widget index 6 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "GRIDDATA", label=self.unitLabels()[idx], addSpace=True) self.show_at(self.unitFlags()[idx], box1) #widget index 7 idx += 1 box1 = gui.widgetBox(box) gui.comboBox(box1, self, "ELEMENTOUTPUT", label=self.unitLabels()[idx], addSpace=True, items=['Cross section [b/atom]', 'Cross section [b/atom] & Attenuation coeff [cm2/g]', 'Partial interaction coeff & Attenuation coeff [cm2/g]'], valueType=int, orientation="horizontal") self.show_at(self.unitFlags()[idx], box1) gui.rubber(self.controlArea)
def __init__(self): super().__init__() left_box_1 = oasysgui.widgetBox(self.controlArea, "GID_SL Request Form", addSpace=False, orientation="vertical", width=500, height=680) self.central_tabs = oasysgui.tabWidget(left_box_1) tab_template = oasysgui.createTabPage(self.central_tabs, "Template Options") tab_input = oasysgui.createTabPage(self.central_tabs, "Input Options") left_box_1_1 = oasysgui.widgetBox(tab_template, "", addSpace=False, orientation="vertical", width=480, height=670) gui.separator(left_box_1_1) gui.comboBox(left_box_1_1, self, "template_type", label="Template Type", labelWidth=100, items=["Simplified (coplanar geometries only)", "Full"], callback=self.set_TemplateType, sendSelectedValue=False, orientation="horizontal") self.simplified_box = oasysgui.widgetBox(left_box_1_1, "", addSpace=False, orientation="horizontal", width=470, height=220) gui.radioButtons(self.simplified_box, self, "simplified_form", ["Symmetric Bragg diffraction from perfect crystals", "Symmetric Bragg diffraction from multilayers and superlattices", "Symmetric Bragg diffraction at Bragg angle of 90 degrees (\"back diffraction\")", "Energy scanning of symmetric Bragg diffraction peaks"], callback=self.set_SimplifiedForm) self.full_box = oasysgui.widgetBox(left_box_1_1, "", addSpace=False, orientation="horizontal", width=470, height=220) gui.radioButtons(self.full_box, self, "full_form", ["Symmetric Bragg diffraction from perfect crystals", "Symmetric Bragg diffraction from multilayers and superlattices", "Coplanar extremely asymmetric diffraction of synchrotron radiation", "Grazing incidence (\"surface\") diffraction from perfect crystals", "Grazing incidence (\"surface\") diffraction from multilayers in the scheme\nwith position sensitive detector (PSD)", "Non-coplanar Bragg-Laue diffraction from crystals with a few degrees\nsurface miscut"], callback=self.set_FullForm) # ------------------------------------------------------------- # ------------------------------------------------------------- # ------------------------------------------------------------- gui.separator(tab_input) left_box_2 = oasysgui.widgetBox(tab_input, "", addSpace=False, orientation="vertical", width=470) left_box_2_1 = oasysgui.widgetBox(left_box_2, "", addSpace=False, orientation="horizontal", width=470) gui.comboBox(left_box_2_1, self, "xway", label="X-rays specified by", items=["Wavelength (Å)", "Energy (keV)", "Bragg angle (deg)", "X-ray line"], callback=self.set_xway, sendSelectedValue=False, orientation="horizontal") self.box_wave = oasysgui.widgetBox(left_box_2_1, "", addSpace=False, orientation="horizontal", width=100) oasysgui.lineEdit(self.box_wave, self, "wave", label="", labelWidth=0, addSpace=False, valueType=float, orientation="horizontal") self.box_line = oasysgui.widgetBox(left_box_2_1, "", addSpace=False, orientation="horizontal", width=100) XRayServerGui.combobox_text(self.box_line, self, "line", label="", labelWidth=0, items=self.get_lines(), sendSelectedValue=True, orientation="horizontal", selectedValue=self.line) button = gui.button(self.box_line, self, "?", callback=self.help_lines) button.setFixedWidth(15) self.set_xway() gui.comboBox(left_box_2_1, self, "ipol", label="Polarization", items=["Sigma", "Pi", "Mixed"], sendSelectedValue=False, orientation="horizontal") # ------------------------------------------------------------- left_box_3 = oasysgui.widgetBox(tab_input, "", addSpace=False, orientation="vertical", width=470) left_box_3_1 = oasysgui.widgetBox(left_box_3, "", addSpace=False, orientation="horizontal", width=470) XRayServerGui.combobox_text(left_box_3_1, self, "code", label="Crystal", labelWidth=40, items=self.get_crystals(), sendSelectedValue=True, orientation="horizontal", selectedValue=self.code) button = gui.button(left_box_3_1, self, "?", callback=self.help_crystals) button.setFixedWidth(15) gui.comboBox(left_box_3_1, self, "df1df2", label=" ", labelWidth=20, items=["Auto DB for f\', f\'\'", "X0h data (0.5-2.5 A)", "Henke (0.4-1200 A)", "Brennan (0.02-400 A)"], sendSelectedValue=False, orientation="horizontal") left_box_3_2 = oasysgui.widgetBox(left_box_3, "", addSpace=False, orientation="horizontal", width=470) oasysgui.lineEdit(left_box_3_2, self, "sigma", label="Sigma", labelWidth=80, addSpace=False, valueType=float, orientation="horizontal") oasysgui.lineEdit(left_box_3_2, self, "w0", label="A W0", labelWidth=50, addSpace=False, valueType=float, orientation="horizontal") oasysgui.lineEdit(left_box_3_2, self, "wh", label=" Wh", labelWidth=50, addSpace=False, valueType=float, orientation="horizontal") # ------------------------------------------------------------- left_box_4 = oasysgui.widgetBox(tab_input, "", addSpace=False, orientation="horizontal", width=470) left_box_4_1 = oasysgui.widgetBox(left_box_4, "", addSpace=False, orientation="horizontal", width=240) oasysgui.lineEdit(left_box_4_1, self, "i1", label="Bragg Reflection", labelWidth=97, addSpace=False, valueType=int, orientation="horizontal") oasysgui.lineEdit(left_box_4_1, self, "i2", label=" ", labelWidth=1, addSpace=False, valueType=int, orientation="horizontal") oasysgui.lineEdit(left_box_4_1, self, "i3", label=" ", labelWidth=1, addSpace=False, valueType=int, orientation="horizontal") left_box_4_2 = oasysgui.widgetBox(left_box_4, "", addSpace=False, orientation="horizontal", width=228) oasysgui.lineEdit(left_box_4_2, self, "daa", label=" Substrate da/a", labelWidth=135, addSpace=False, valueType=float, orientation="horizontal") # ------------------------------------------------------------- # ------------------------------------------------------------- self.simplified_input_box = oasysgui.widgetBox(tab_input, "", addSpace=False, orientation="vertical", width=470, height=290) gui.comboBox(self.simplified_input_box, self, "igie", label="Geometry specified by", items=["angle of Bragg planes to surface ('+' for g0>gh)", "incidence angle of K0", "exit angle of Kh", "asymmetry factor beta=g0/gh"], callback=self.set_igie_s, sendSelectedValue=False, orientation="horizontal") simplified_input_box_1 = oasysgui.widgetBox(self.simplified_input_box, "", addSpace=False, orientation="horizontal", width=470) oasysgui.lineEdit(simplified_input_box_1, self, "fcentre", label="Value", labelWidth=280, addSpace=False, valueType=float, orientation="horizontal") self.unic_combo_s = gui.comboBox(simplified_input_box_1, self, "unic", label=" ", labelWidth=1, items=[" ", "degr.", "min.", "mrad.", "sec.", "urad"], sendSelectedValue=False, orientation="horizontal") self.set_igie_s() simplified_input_box_2 = oasysgui.widgetBox(self.simplified_input_box, "", addSpace=False, orientation="horizontal", width=470) oasysgui.lineEdit(simplified_input_box_2, self, "scanmin", label="Scan: From", labelWidth=70, addSpace=False, valueType=float, orientation="horizontal") oasysgui.lineEdit(simplified_input_box_2, self, "scanmax", label="To", labelWidth=15, addSpace=False, valueType=float, orientation="horizontal") self.simplified_input_box_scan_1_1 = oasysgui.widgetBox(simplified_input_box_2, "", addSpace=False, orientation="horizontal") gui.comboBox(self.simplified_input_box_scan_1_1, self, "unis", label=" ", labelWidth=1, items=["degr.", "min.", "mrad.", "sec.", "urad"], sendSelectedValue=False, orientation="horizontal") oasysgui.lineEdit(self.simplified_input_box_scan_1_1, self, "nscan", label="Points", labelWidth=40, addSpace=False, valueType=int, orientation="horizontal") self.simplified_input_box_scan_1_2 = oasysgui.widgetBox(self.simplified_input_box, "", addSpace=False, orientation="horizontal", width=470) gui.checkBox(self.simplified_input_box_scan_1_2, self, "invert", "Invert axis", labelWidth=190) gui.comboBox(self.simplified_input_box_scan_1_2, self, "column", label="Plot argument", labelWidth=100, items=["scan angle", "incidence angle", "exit angle"], sendSelectedValue=False, orientation="horizontal") self.simplified_input_box_scan_2_1 = oasysgui.widgetBox(simplified_input_box_2, "", addSpace=False, orientation="horizontal") self.unis_combo_s = gui.comboBox(self.simplified_input_box_scan_2_1, self, "unis", label=" ", labelWidth=1, items=["degr.", "min.", "mrad.", "sec.", "urad", "eV"], sendSelectedValue=False, orientation="horizontal") oasysgui.lineEdit(self.simplified_input_box_scan_2_1, self, "nscan", label="Points", labelWidth=40, addSpace=False, valueType=int, orientation="horizontal") self.simplified_input_box_scan_2_2 = oasysgui.widgetBox(self.simplified_input_box, "", addSpace=False, orientation="horizontal") gui.comboBox(self.simplified_input_box_scan_2_2, self, "axis", label="Scan Type", labelWidth=290, items=["[k0 x h]", "Energy (eV)", "Energy (eV), no X0h recalc"], sendSelectedValue=False, orientation="horizontal", callback=self.set_scan_type_s) self.set_scan_type_s() # ------------------------------------------------------------- # ------------------------------------------------------------- self.full_input_box = oasysgui.widgetBox(tab_input, "", addSpace=True, orientation="vertical", width=470, height=290) gui.comboBox(self.full_input_box, self, "igie", label="Geom. by", labelWidth=60, items=["[1]. Surface orientation & incidence angle of K0", "[2]. Surface orientation & exit angle of Kh", "[3]. Surface orientation & condition of coplanar grazing incidence", "[4]. Surface orientation & condition of coplanar grazing exit", "[5]. Surface orientation & condition of symmetric Bragg case", "[6]. Condition of coplanar reflection & angle of Bragg planes to surface", "[7]. Condition of coplanar reflection & incidence angle of K0", "[8]. Condition of coplanar reflection & exit angle of Kh", "[9]. Condition of coplanar reflection & asymmetry factor beta=g0/gh"], callback=self.set_igie_f, sendSelectedValue=False, orientation="horizontal") gui.label(self.full_input_box, self, "-- Geom. parameter ([1,7]=incidence angle, [2,8]=exit angle, [6]=Bragg planes") full_input_box_1 = oasysgui.widgetBox(self.full_input_box, "", addSpace=False, orientation="vertical", width=470) full_input_box_1_1 = oasysgui.widgetBox(full_input_box_1, "", addSpace=False, orientation="horizontal", width=470) self.le_fcentre = oasysgui.lineEdit(full_input_box_1_1, self, "fcentre", label=" angle, [9]=g0/gh)", labelWidth=250, addSpace=False, valueType=float, orientation="horizontal") self.unic_combo_f = gui.comboBox(full_input_box_1_1, self, "unic", label=" ", labelWidth=1, items=[" ", "degr.", "min.", "mrad.", "sec.", "urad"], sendSelectedValue=False, orientation="horizontal") self.set_igie_f() full_input_box_1_2 = oasysgui.widgetBox(full_input_box_1, "", addSpace=False, orientation="horizontal", width=270) oasysgui.lineEdit(full_input_box_1_2, self, "n1", label="-- Surface plane ([1-5])", labelWidth=135, addSpace=False, valueType=int, orientation="horizontal") oasysgui.lineEdit(full_input_box_1_2, self, "n2", label=" ", labelWidth=1, addSpace=False, valueType=int, orientation="horizontal") oasysgui.lineEdit(full_input_box_1_2, self, "n3", label=" ", labelWidth=1, addSpace=False, valueType=int, orientation="horizontal") full_input_box_2 = oasysgui.widgetBox(self.full_input_box, "", addSpace=False, orientation="horizontal", width=470) full_input_box_2_1 = oasysgui.widgetBox(full_input_box_2, "", addSpace=False, orientation="horizontal", width=270) oasysgui.lineEdit(full_input_box_2_1, self, "m1", label="Miscut direction", labelWidth=135, addSpace=False, valueType=int, orientation="horizontal") oasysgui.lineEdit(full_input_box_2_1, self, "m2", label=" ", labelWidth=1, addSpace=False, valueType=int, orientation="horizontal") oasysgui.lineEdit(full_input_box_2_1, self, "m3", label=" ", labelWidth=1, addSpace=False, valueType=int, orientation="horizontal") full_input_box_2_2 = oasysgui.widgetBox(full_input_box_2, "", addSpace=False, orientation="horizontal") oasysgui.lineEdit(full_input_box_2_2, self, "miscut", label="Miscut angle", addSpace=False, valueType=float, orientation="horizontal") gui.comboBox(full_input_box_2_2, self, "unim", label=" ", labelWidth=1, items=["degr.", "min.", "mrad.", "sec.", "urad"], sendSelectedValue=False, orientation="horizontal") full_input_box_3 = oasysgui.widgetBox(self.full_input_box, "", addSpace=False, orientation="vertical", width=470) full_input_box_3_1 = oasysgui.widgetBox(full_input_box_3, "", addSpace=False, orientation="horizontal", width=470) gui.comboBox(full_input_box_3_1, self, "axis", label="Scan Type", labelWidth=190, items=["Surface normal (N_surface)", "[k0 x N_surface]", "Reciprocal latt.vector (h)", "[k0 x h]", "Other axis", "Takeoff spectrum (PSD)"], sendSelectedValue=False, orientation="horizontal", callback=self.set_scan_type_f) gui.checkBox(full_input_box_3_1, self, "invert", "Invert axis", labelWidth=90) full_input_box_3_2 = oasysgui.widgetBox(full_input_box_3, "", addSpace=False, orientation="horizontal", width=470) self.le_a1 = oasysgui.lineEdit(full_input_box_3_2, self, "a1", label="Indices, if other scan axis", labelWidth=290, addSpace=False, valueType=int, orientation="horizontal") self.le_a2 = oasysgui.lineEdit(full_input_box_3_2, self, "a2", label=" ", labelWidth=1, addSpace=False, valueType=int, orientation="horizontal") self.le_a3 = oasysgui.lineEdit(full_input_box_3_2, self, "a3", label=" ", labelWidth=1, addSpace=False, valueType=int, orientation="horizontal") self.set_scan_type_f() full_input_box_5 = oasysgui.widgetBox(self.full_input_box, "", addSpace=False, orientation="vertical", width=470) full_input_box_5_1 = oasysgui.widgetBox(full_input_box_5, "", addSpace=False, orientation="horizontal", width=470) oasysgui.lineEdit(full_input_box_5_1, self, "scanmin", label="Scan: From", labelWidth=70, addSpace=False, valueType=float, orientation="horizontal") oasysgui.lineEdit(full_input_box_5_1, self, "scanmax", label="To", labelWidth=15, addSpace=False, valueType=float, orientation="horizontal") gui.comboBox(full_input_box_5_1, self, "unis", label=" ", labelWidth=1, items=["degr.", "min.", "mrad.", "sec.", "urad"], sendSelectedValue=False, orientation="horizontal") oasysgui.lineEdit(full_input_box_5_1, self, "nscan", label="Points", labelWidth=40, addSpace=False, valueType=int, orientation="horizontal") full_input_box_5_2 = oasysgui.widgetBox(full_input_box_5, "", addSpace=False, orientation="horizontal", width=470) gui.comboBox(full_input_box_5_2, self, "column", label="Plot argument", labelWidth=290, items=["scan angle", "incidence angle", "exit angle"], sendSelectedValue=False, orientation="horizontal") # ------------------------------------------------------------- box_alpha = oasysgui.widgetBox(tab_input, "", addSpace=False, orientation="horizontal", width=280) self.le_alphamax = oasysgui.lineEdit(box_alpha, self, "alphamax", label="Approximations: alpha_max", labelWidth=170, addSpace=False, valueType=float, orientation="horizontal") gui.label(box_alpha, self, "*|xh|") gui.separator(tab_input) # ------------------------------------------------------------- box_top = oasysgui.widgetBox(tab_input, "", addSpace=False, orientation="vertical", width=470) box_top_0 = oasysgui.widgetBox(box_top, "", addSpace=False, orientation="horizontal", width=470) box_top_0_1 = oasysgui.widgetBox(box_top_0, "", addSpace=False, orientation="vertical", width=100) gui.label(box_top_0_1, self, "Top layer profile\n(optional):") button = gui.button(box_top_0_1, self, "? (sintax)", callback=self.help_profile) button.setFixedWidth(90) box_top_0_2 = oasysgui.widgetBox(box_top_0, "", addSpace=False, orientation="horizontal", width=360) self.profile_area = QtWidgets.QTextEdit() self.profile_area.setStyleSheet("background-color: white;") self.profile_area.setMaximumHeight(110) self.profile_area.setMaximumWidth(360) box_top_0_2.layout().addWidget(self.profile_area) box_top_labels = oasysgui.widgetBox(box_top, "", addSpace=False, orientation="horizontal", width=470) box_top_labels_1 = oasysgui.widgetBox(box_top_labels, "", addSpace=False, orientation="horizontal", width=100) gui.label(box_top_labels_1, self, "Available Codes:") box_top_labels_2 = oasysgui.widgetBox(box_top_labels, "", addSpace=False, orientation="horizontal", width=360) gui.label(box_top_labels_2, self, "Crystals") gui.label(box_top_labels_2, self, "Non-Crystals") gui.label(box_top_labels_2, self, "Elements") box_top_1 = oasysgui.widgetBox(box_top, "", addSpace=False, orientation="horizontal", width=470) oasysgui.widgetBox(box_top_1, "", addSpace=False, orientation="horizontal", width=100) box_top_1_2 = oasysgui.widgetBox(box_top_1, "", addSpace=False, orientation="horizontal", width=360) crystals_area = QtWidgets.QTextEdit() crystals_area.setStyleSheet("background-color: white;") crystals_area.setMaximumHeight(100) crystals_area.setMaximumWidth(120) crystals_area.setText("\n".join(ListUtility.get_list("crystals"))) crystals_area.setReadOnly(True) non_crystals_area = QtWidgets.QTextEdit() non_crystals_area.setStyleSheet("background-color: white;") non_crystals_area.setMaximumHeight(100) non_crystals_area.setMaximumWidth(120) non_crystals_area.setText("\n".join(ListUtility.get_list("amorphous"))) non_crystals_area.setReadOnly(True) elements_area = QtWidgets.QTextEdit() elements_area.setStyleSheet("background-color: white;") elements_area.setMaximumHeight(100) elements_area.setMaximumWidth(120) elements_area.setText("\n".join(ListUtility.get_list("atoms"))) elements_area.setReadOnly(True) box_top_1_2.layout().addWidget(crystals_area) box_top_1_2.layout().addWidget(non_crystals_area) box_top_1_2.layout().addWidget(elements_area) # ----------------------------------------------------------- button = gui.button(tab_input, self, "Submit Query!", callback=self.submit) button.setFixedHeight(30) gui.rubber(self.controlArea) self.tabs = [] self.tabs_widget = oasysgui.tabWidget(self.mainArea) self.initializeTabs() self.set_TemplateType(change_values=False) self.profile_area.textChanged.connect(self.set_profile) self.le_alphamax.focusOutEvent = self.alphamax_focusOutEvent self.alphamax_focusOutEvent(None) gui.rubber(self.mainArea)
def __init__(self): super().__init__() box0 = gui.widgetBox(self.controlArea, " ",orientation="horizontal") #widget buttons: compute, set defaults, help gui.button(box0, self, "Compute", callback=self.compute) gui.button(box0, self, "Defaults", callback=self.defaults) gui.button(box0, self, "Help", callback=self.help1) self.process_showers() box = gui.widgetBox(self.controlArea, " ",orientation="vertical") idx = -1 #widget index 0 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "TITLE", label=self.unitLabels()[idx], addSpace=True) self.show_at(self.unitFlags()[idx], box1) #widget index 1 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "ENERGY", label=self.unitLabels()[idx], addSpace=True, valueType=float, validator=QDoubleValidator()) self.show_at(self.unitFlags()[idx], box1) #widget index 2 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "CUR", label=self.unitLabels()[idx], addSpace=True, valueType=float, validator=QDoubleValidator()) self.show_at(self.unitFlags()[idx], box1) #widget index 3 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "SIGX", label=self.unitLabels()[idx], addSpace=True, valueType=float, validator=QDoubleValidator()) self.show_at(self.unitFlags()[idx], box1) #widget index 4 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "SIGY", label=self.unitLabels()[idx], addSpace=True, valueType=float, validator=QDoubleValidator()) self.show_at(self.unitFlags()[idx], box1) #widget index 5 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "SIGX1", label=self.unitLabels()[idx], addSpace=True, valueType=float, validator=QDoubleValidator()) self.show_at(self.unitFlags()[idx], box1) #widget index 6 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "SIGY1", label=self.unitLabels()[idx], addSpace=True, valueType=float, validator=QDoubleValidator()) self.show_at(self.unitFlags()[idx], box1) #widget index 7 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "ITYPE", label=self.unitLabels()[idx], addSpace=True, valueType=int, validator=QIntValidator()) self.show_at(self.unitFlags()[idx], box1) #widget index 8 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "PERIOD", label=self.unitLabels()[idx], addSpace=True, valueType=float, validator=QDoubleValidator()) self.show_at(self.unitFlags()[idx], box1) #widget index 9 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "N", label=self.unitLabels()[idx], addSpace=True, valueType=int, validator=QIntValidator()) self.show_at(self.unitFlags()[idx], box1) #widget index 10 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "KX", label=self.unitLabels()[idx], addSpace=True, valueType=float, validator=QDoubleValidator()) self.show_at(self.unitFlags()[idx], box1) #widget index 11 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "KY", label=self.unitLabels()[idx], addSpace=True, valueType=float, validator=QDoubleValidator()) self.show_at(self.unitFlags()[idx], box1) #widget index 12 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "PHASE", label=self.unitLabels()[idx], addSpace=True, valueType=float, validator=QDoubleValidator()) self.show_at(self.unitFlags()[idx], box1) #widget index 13 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "EMIN", label=self.unitLabels()[idx], addSpace=True, valueType=float, validator=QDoubleValidator()) self.show_at(self.unitFlags()[idx], box1) #widget index 14 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "EMAX", label=self.unitLabels()[idx], addSpace=True, valueType=float, validator=QDoubleValidator()) self.show_at(self.unitFlags()[idx], box1) #widget index 15 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "NENERGY", label=self.unitLabels()[idx], addSpace=True, valueType=int, validator=QIntValidator()) self.show_at(self.unitFlags()[idx], box1) #widget index 16 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "D", label=self.unitLabels()[idx], addSpace=True, valueType=float, validator=QDoubleValidator()) self.show_at(self.unitFlags()[idx], box1) #widget index 17 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "XPC", label=self.unitLabels()[idx], addSpace=True, valueType=float, validator=QDoubleValidator()) self.show_at(self.unitFlags()[idx], box1) #widget index 18 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "YPC", label=self.unitLabels()[idx], addSpace=True, valueType=float, validator=QDoubleValidator()) self.show_at(self.unitFlags()[idx], box1) #widget index 19 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "XPS", label=self.unitLabels()[idx], addSpace=True, valueType=float, validator=QDoubleValidator()) self.show_at(self.unitFlags()[idx], box1) #widget index 20 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "YPS", label=self.unitLabels()[idx], addSpace=True, valueType=float, validator=QDoubleValidator()) self.show_at(self.unitFlags()[idx], box1) #widget index 21 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "NXP", label=self.unitLabels()[idx], addSpace=True, valueType=int, validator=QIntValidator()) self.show_at(self.unitFlags()[idx], box1) #widget index 22 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "NYP", label=self.unitLabels()[idx], addSpace=True, valueType=int, validator=QIntValidator()) self.show_at(self.unitFlags()[idx], box1) #widget index 23 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "MODE", label=self.unitLabels()[idx], addSpace=True, valueType=int, validator=QIntValidator()) self.show_at(self.unitFlags()[idx], box1) #widget index 24 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "ICALC", label=self.unitLabels()[idx], addSpace=True, valueType=int, validator=QIntValidator()) self.show_at(self.unitFlags()[idx], box1) #widget index 25 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "IHARM", label=self.unitLabels()[idx], addSpace=True, valueType=int, validator=QIntValidator()) self.show_at(self.unitFlags()[idx], box1) #widget index 26 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "NPHI", label=self.unitLabels()[idx], addSpace=True, valueType=int, validator=QIntValidator()) self.show_at(self.unitFlags()[idx], box1) #widget index 27 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "NSIG", label=self.unitLabels()[idx], addSpace=True, valueType=int, validator=QIntValidator()) self.show_at(self.unitFlags()[idx], box1) #widget index 28 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "NALPHA", label=self.unitLabels()[idx], addSpace=True, valueType=int, validator=QIntValidator()) self.show_at(self.unitFlags()[idx], box1) #widget index 29 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "DALPHA", label=self.unitLabels()[idx], addSpace=True, valueType=float, validator=QDoubleValidator()) self.show_at(self.unitFlags()[idx], box1) #widget index 30 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "NOMEGA", label=self.unitLabels()[idx], addSpace=True, valueType=int, validator=QIntValidator()) self.show_at(self.unitFlags()[idx], box1) #widget index 31 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "DOMEGA", label=self.unitLabels()[idx], addSpace=True, valueType=float, validator=QDoubleValidator()) self.show_at(self.unitFlags()[idx], box1) gui.rubber(self.controlArea)
def __init__(self): super().__init__() self.controlArea.setFixedWidth(self.CONTROL_AREA_WIDTH) tabs_setting = oasysgui.tabWidget(self.controlArea) tabs_setting.setFixedHeight(self.TABS_AREA_HEIGHT) tabs_setting.setFixedWidth(self.CONTROL_AREA_WIDTH-5) tab_bas = oasysgui.createTabPage(tabs_setting, "Basic Setting") tab_sou = oasysgui.createTabPage(tabs_setting, "Source Setting") left_box_1 = oasysgui.widgetBox(tab_bas, "Monte Carlo and Energy Spectrum", addSpace=True, orientation="vertical", height=130) oasysgui.lineEdit(left_box_1, self, "number_of_rays", "Number of Rays", tooltip="Number of Rays", labelWidth=260, valueType=int, orientation="horizontal") oasysgui.lineEdit(left_box_1, self, "seed", "Seed", tooltip="Seed", labelWidth=260, valueType=int, orientation="horizontal") oasysgui.lineEdit(left_box_1, self, "e_min", "Minimum Photon Energy [eV]", tooltip="Minimum Energy [eV]", labelWidth=260, valueType=float, orientation="horizontal") oasysgui.lineEdit(left_box_1, self, "e_max", "Maximum Photon Energy [eV]", tooltip="Maximum Energy [eV]", labelWidth=260, valueType=float, orientation="horizontal") ############################## left_box_4 = oasysgui.widgetBox(tab_bas, "Reject Rays", addSpace=True, orientation="vertical", height=200) gui.comboBox(left_box_4, self, "optimize_source_combo", label="Optimize Source", items=["No", "Using file with phase space volume", "Using slit/acceptance"], callback=self.set_OptimizeSource, labelWidth=120, orientation="horizontal") self.box_using_file_with_phase_space_volume = oasysgui.widgetBox(left_box_4, "", addSpace=False, orientation="vertical") oasysgui.lineEdit(self.box_using_file_with_phase_space_volume, self, "max_number_of_rejected_rays", "Max number of rejected rays (set 0 for infinity)", labelWidth=280, tooltip="Max number of rejected rays", valueType=int, orientation="horizontal") file_box = oasysgui.widgetBox(self.box_using_file_with_phase_space_volume, "", addSpace=True, orientation="horizontal", height=25) self.le_optimize_file_name = oasysgui.lineEdit(file_box, self, "file_with_phase_space_volume", "File with phase space volume", labelWidth=210, tooltip="File with phase space volume", valueType=str, orientation="horizontal") gui.button(file_box, self, "...", callback=self.selectOptimizeFile) self.box_using_slit_acceptance = oasysgui.widgetBox(left_box_4, "", addSpace=False, orientation="vertical") oasysgui.lineEdit(self.box_using_slit_acceptance, self, "max_number_of_rejected_rays", "Max number of rejected rays (set 0 for infinity)", labelWidth=280, tooltip="Max number of rejected rays", valueType=int, orientation="horizontal") self.le_slit_distance = oasysgui.lineEdit(self.box_using_slit_acceptance, self, "slit_distance", "--", labelWidth=280, tooltip="Slit Distance", valueType=float, orientation="horizontal") self.le_min_x = oasysgui.lineEdit(self.box_using_slit_acceptance, self, "min_x", "--", labelWidth=280, tooltip="Min X/Min Xp", valueType=float, orientation="horizontal") self.le_max_x = oasysgui.lineEdit(self.box_using_slit_acceptance, self, "max_x", "--", labelWidth=280, tooltip="Max X/Max Xp", valueType=float, orientation="horizontal") self.le_min_z = oasysgui.lineEdit(self.box_using_slit_acceptance, self, "min_z", "--", labelWidth=280, tooltip="Min Z/Min Zp", valueType=float, orientation="horizontal") self.le_max_z = oasysgui.lineEdit(self.box_using_slit_acceptance, self, "max_z", "--", labelWidth=280, tooltip="Max Z/Max Zp", valueType=float, orientation="horizontal") self.set_OptimizeSource() adv_other_box = oasysgui.widgetBox(tab_bas, "Optional file output", addSpace=False, orientation="vertical") gui.comboBox(adv_other_box, self, "file_to_write_out", label="Files to write out", labelWidth=120, items=["None", "Begin.dat", "Debug (begin.dat + start.xx/end.xx)"], sendSelectedValue=False, orientation="horizontal") left_box_2 = oasysgui.widgetBox(tab_sou, "Machine Parameters", addSpace=True, orientation="vertical", height=260) oasysgui.lineEdit(left_box_2, self, "energy", "Electron Energy [GeV]", tooltip="Energy [GeV]", labelWidth=260, valueType=float, orientation="horizontal") oasysgui.lineEdit(left_box_2, self, "electron_current", "Electron Current [mA]", tooltip="Electron Current [mA]", labelWidth=260, valueType=float, orientation="horizontal") gui.comboBox(left_box_2, self, "use_emittances_combo", label="Use Emittances?", items=["No", "Yes"], callback=self.set_UseEmittances, labelWidth=260, orientation="horizontal") self.box_use_emittances = oasysgui.widgetBox(left_box_2, "", addSpace=True, orientation="vertical") self.le_sigma_x = oasysgui.lineEdit(self.box_use_emittances, self, "sigma_x", "Sigma X", labelWidth=260, tooltip="Sigma X", valueType=float, orientation="horizontal") self.le_sigma_z = oasysgui.lineEdit(self.box_use_emittances, self, "sigma_z", "Sigma Z", labelWidth=260, tooltip="Sigma Z", valueType=float, orientation="horizontal") self.le_emittance_x = oasysgui.lineEdit(self.box_use_emittances, self, "emittance_x", "Emittance X", labelWidth=260, tooltip="Emittance X", valueType=float, orientation="horizontal") self.le_emittance_z = oasysgui.lineEdit(self.box_use_emittances, self, "emittance_z", "Emittance Z", labelWidth=260, tooltip="Emittance Z", valueType=float, orientation="horizontal") self.le_distance_from_waist_x = oasysgui.lineEdit(self.box_use_emittances, self, "distance_from_waist_x", "Distance from Waist X", labelWidth=260, tooltip="Distance from Waist X", valueType=float, orientation="horizontal") self.le_distance_from_waist_z = oasysgui.lineEdit(self.box_use_emittances, self, "distance_from_waist_z", "Distance from Waist Z", labelWidth=260, tooltip="Distance from Waist Z", valueType=float, orientation="horizontal") self.set_UseEmittances() left_box_10 = oasysgui.widgetBox(tab_sou, "Electron Beam Parameters", addSpace=True, orientation="vertical", height=140) gui.comboBox(left_box_10, self, "shift_betax_flag", label="Shift Transversal Velocity", items=["No shift", "Half excursion", "Minimum", "Maximum", "Value at zero", "User value"], callback=self.set_ShiftBetaXFlag, labelWidth=260, orientation="horizontal") self.shift_betax_value_box = oasysgui.widgetBox(left_box_10, "", addSpace=False, orientation="vertical", height=25) self.shift_betax_value_box_hidden = oasysgui.widgetBox(left_box_10, "", addSpace=False, orientation="vertical", height=25) oasysgui.lineEdit(self.shift_betax_value_box, self, "shift_betax_value", "Value", labelWidth=260, valueType=float, orientation="horizontal") gui.comboBox(left_box_10, self, "shift_x_flag", label="Shift Transversal Coordinate", items=["No shift", "Half excursion", "Minimum", "Maximum", "Value at zero", "User value"], callback=self.set_ShiftXFlag, labelWidth=260, orientation="horizontal") self.shift_x_value_box = oasysgui.widgetBox(left_box_10, "", addSpace=False, orientation="vertical", height=25) self.shift_x_value_box_hidden = oasysgui.widgetBox(left_box_10, "", addSpace=False, orientation="vertical", height=25) oasysgui.lineEdit(self.shift_x_value_box, self, "shift_x_value", "Value [m]", labelWidth=260, valueType=float, orientation="horizontal") self.set_ShiftXFlag() self.set_ShiftBetaXFlag() left_box_3 = oasysgui.widgetBox(tab_sou, "Wiggler Parameters", addSpace=True, orientation="vertical", height=140) gui.comboBox(left_box_3, self, "type_combo", label="Type", items=["conventional/sinusoidal", "B from file (y [m], Bz [T])", "B from harmonics"], callback=self.set_Type, labelWidth=220, orientation="horizontal") oasysgui.lineEdit(left_box_3, self, "number_of_periods", "Number of Periods", labelWidth=260, tooltip="Number of Periods", valueType=int, orientation="horizontal") self.conventional_sinusoidal_box = oasysgui.widgetBox(left_box_3, "", addSpace=False, orientation="vertical") oasysgui.lineEdit(self.conventional_sinusoidal_box, self, "k_value", "K value", labelWidth=260, tooltip="K value", valueType=float, orientation="horizontal") oasysgui.lineEdit(self.conventional_sinusoidal_box, self, "id_period", "ID period [m]", labelWidth=260, tooltip="ID period [m]", valueType=float, orientation="horizontal") self.b_from_file_box = oasysgui.widgetBox(left_box_3, "", addSpace=False, orientation="vertical") file_box = oasysgui.widgetBox(self.b_from_file_box, "", addSpace=True, orientation="horizontal", height=25) self.le_file_with_b_vs_y = oasysgui.lineEdit(file_box, self, "file_with_b_vs_y", "File with B vs Y", labelWidth=150, tooltip="File with B vs Y", valueType=str, orientation="horizontal") gui.button(file_box, self, "...", callback=self.selectFileWithBvsY) self.b_from_harmonics_box = oasysgui.widgetBox(left_box_3, "", addSpace=False, orientation="vertical") oasysgui.lineEdit(self.b_from_harmonics_box, self, "id_period", "ID period [m]", labelWidth=260, tooltip="ID period [m]", valueType=float, orientation="horizontal") file_box = oasysgui.widgetBox(self.b_from_harmonics_box, "", addSpace=True, orientation="horizontal", height=25) self.le_file_with_harmonics = oasysgui.lineEdit(file_box, self, "file_with_harmonics", "File with harmonics", labelWidth=150, tooltip="File with harmonics", valueType=str, orientation="horizontal") gui.button(file_box, self, "...", callback=self.selectFileWithHarmonics) self.set_Type() gui.rubber(self.controlArea) wiggler_plot_tab = oasysgui.widgetBox(self.main_tabs, addToLayout=0, margin=4) self.main_tabs.insertTab(1, wiggler_plot_tab, "Wiggler Plots") view_box = oasysgui.widgetBox(wiggler_plot_tab, "Plotting Style", addSpace=False, orientation="horizontal") view_box_1 = oasysgui.widgetBox(view_box, "", addSpace=False, orientation="vertical", width=350) self.wiggler_view_type_combo = gui.comboBox(view_box_1, self, "plot_graph", label="Plot Graphs?", labelWidth=220, items=["No", "Yes"], callback=self.set_PlotGraphs, sendSelectedValue=False, orientation="horizontal") self.wiggler_tab = [] self.wiggler_tabs = gui.tabWidget(wiggler_plot_tab) self.initializeWigglerTabs() gui.rubber(self.mainArea)