def __init__(self, show_automatic_box=False): super().__init__(show_automatic_box=show_automatic_box) self.runaction = widget.OWAction("Copy Source Parameters", self) self.runaction.triggered.connect(self.copy_src_parameters) self.addAction(self.runaction) self.runaction = widget.OWAction("Paste Source Parameters", self) self.runaction.triggered.connect(self.paste_src_parameters) self.addAction(self.runaction) self.runaction = widget.OWAction("Run Shadow/Source", self) self.runaction.triggered.connect(self.runShadowSource) self.addAction(self.runaction) self.general_options_box.setVisible(False) button_box = oasysgui.widgetBox(self.controlArea, "", addSpace=False, orientation="horizontal") button = gui.button(button_box, self, "Run Shadow/Source", callback=self.runShadowSource) 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(150) gui.separator(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 __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__() 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, show_automatic_box=True): super().__init__(show_automatic_box=show_automatic_box) self.runaction = widget.OWAction("Run Shadow/Trace", self) self.runaction.triggered.connect(self.traceOpticalElement) self.addAction(self.runaction) ################################# # FIX A WEIRD BEHAVIOUR AFTER DISPLAY # THE WIDGET: PROBABLY ON SIGNAL MANAGER self.dumpSettings() self.controlArea.setFixedWidth(self.CONTROL_AREA_WIDTH) button_box = oasysgui.widgetBox(self.controlArea, "", addSpace=False, orientation="horizontal") self.button_trace = gui.button(button_box, self, "Run Shadow/Trace", callback=self.traceOpticalElement) font = QFont(self.button_trace.font()) font.setBold(True) self.button_trace.setFont(font) palette = QPalette(self.button_trace.palette()) # make a copy of the palette palette.setColor(QPalette.ButtonText, QColor('Dark Blue')) self.button_trace.setPalette(palette) # assign new palette self.button_trace.setFixedHeight(45) self.button_reset = gui.button(button_box, self, "Reset Fields", callback=self.callResetSettings) font = QFont(self.button_reset.font()) font.setItalic(True) self.button_reset.setFont(font) palette = QPalette(self.button_reset.palette()) # make a copy of the palette palette.setColor(QPalette.ButtonText, QColor('Dark Red')) self.button_reset.setPalette(palette) # assign new palette self.button_reset.setFixedHeight(45) self.button_reset.setFixedWidth(150) gui.separator(self.controlArea) self.tabs_setting = oasysgui.tabWidget(self.controlArea) self.tabs_setting.setFixedHeight(self.TABS_AREA_HEIGHT-5) self.tabs_setting.setFixedWidth(self.CONTROL_AREA_WIDTH-5) self.tab_bas = oasysgui.createTabPage(self.tabs_setting, "Basic Setting") self.tab_adv = oasysgui.createTabPage(self.tabs_setting, "Advanced Setting") adv_other_box = oasysgui.widgetBox(self.tab_adv, "Optional file output", addSpace=False, orientation="vertical") gui.comboBox(adv_other_box, self, "file_to_write_out", label="Files to write out", labelWidth=150, items=["All", "Mirror", "Image", "None", "Debug (All + start.xx/end.xx)"], sendSelectedValue=False, orientation="horizontal")
def __init__(self): super().__init__() self.runaction = widget.OWAction("Read COMSYL File", self) self.runaction.triggered.connect(self.read_file) self.addAction(self.runaction) self.setFixedWidth(590) self.setFixedHeight(150) left_box_1 = oasysgui.widgetBox(self.controlArea, "COMSYL File Selection", addSpace=True, orientation="vertical", width=570, height=70) 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, "filename", "COMSYL 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=20) button = gui.button(self.controlArea, self, "Read COMSYL File", callback=self.read_file) button.setFixedHeight(45) gui.rubber(self.controlArea)
def __init__(self): super().__init__() self.runaction = widget.OWAction("Propagate Wavefront", self) self.runaction.triggered.connect(self.propagate_wavefront) self.addAction(self.runaction) button_box = oasysgui.widgetBox(self.controlArea, "", addSpace=False, orientation="horizontal") button = gui.button(button_box, self, "Propagate Wavefront", callback=self.propagate_wavefront) 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(150) gui.separator(self.controlArea) self.controlArea.setFixedWidth(self.CONTROL_AREA_WIDTH) self.tabs_setting = oasysgui.tabWidget(self.controlArea) self.tabs_setting.setFixedHeight(self.TABS_AREA_HEIGHT) self.tabs_setting.setFixedWidth(self.CONTROL_AREA_WIDTH - 5) tab_thick = oasysgui.createTabPage(self.tabs_setting, "Thickness Error") input_box = oasysgui.widgetBox(tab_thick, "Thickness Error Files", addSpace=True, orientation="vertical", height=390, width=self.CONTROL_AREA_WIDTH - 20) self.files_area = oasysgui.textArea(height=315) input_box.layout().addWidget(self.files_area) self.refresh_files_text_area() oasysgui.lineEdit(input_box, self, "crl_scaling_factor", "Thickness Error Scaling Factor", labelWidth=260, valueType=float, orientation="horizontal")
def __init__(self): super().__init__() self.runaction = widget.OWAction("Run Hybrid", self) self.runaction.triggered.connect(self.run_hybrid) self.addAction(self.runaction) self.controlArea.setFixedWidth(self.CONTROL_AREA_WIDTH) button_box = oasysgui.widgetBox(self.controlArea, "", addSpace=False, orientation="horizontal") button = gui.button(button_box, self, "Run HYBRID", callback=self.run_hybrid) 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) main_tabs = oasysgui.tabWidget(self.mainArea) plot_tab = oasysgui.createTabPage(main_tabs, "Plots") out_tab = oasysgui.createTabPage(main_tabs, "Output") self.tabs = oasysgui.tabWidget(plot_tab) 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_adv = oasysgui.createTabPage(tabs_setting, "Advanced Setting") box_1 = oasysgui.widgetBox(tab_bas, "Calculation Parameters", addSpace=True, orientation="vertical", height=100) gui.comboBox( box_1, self, "ghy_diff_plane", label="Diffraction Plane", labelWidth=310, items=["Sagittal", "Tangential", "Both (2D)", "Both (1D+1D)"], callback=self.set_DiffPlane, sendSelectedValue=False, orientation="horizontal") gui.comboBox(box_1, self, "ghy_calcType", label="Calculation", labelWidth=70, items=[ "Diffraction by Mirror Size + Figure Errors", "Diffraction by Grating Size + Figure Errors", ], callback=self.set_CalculationType, sendSelectedValue=False, orientation="horizontal") gui.separator(box_1, 10) box_files = oasysgui.widgetBox(tab_bas, "Height Error Profiles", addSpace=True, orientation="vertical", height=180) gui.button(box_files, self, "Select Height Error Profile Data Files", callback=self.select_files) self.files_area = oasysgui.textArea(height=120, width=360) self.refresh_files_text_area() box_files.layout().addWidget(self.files_area) box_2 = oasysgui.widgetBox(tab_bas, "Numerical Control Parameters", addSpace=True, orientation="vertical", height=140) self.le_nbins_x = oasysgui.lineEdit( box_2, self, "ghy_nbins_x", "Number of bins for I(Sagittal) histogram", labelWidth=260, valueType=int, orientation="horizontal") self.le_nbins_z = oasysgui.lineEdit( box_2, self, "ghy_nbins_z", "Number of bins for I(Tangential) histogram", labelWidth=260, valueType=int, orientation="horizontal") self.le_npeak = oasysgui.lineEdit(box_2, self, "ghy_npeak", "Number of diffraction peaks", labelWidth=260, valueType=int, orientation="horizontal") self.le_fftnpts = oasysgui.lineEdit(box_2, self, "ghy_fftnpts", "Number of points for FFT", labelWidth=260, valueType=int, orientation="horizontal") box_3 = oasysgui.widgetBox(tab_adv, "Propagation Parameters", addSpace=True, orientation="vertical", height=200) self.cb_focal_length_calc = gui.comboBox( box_3, self, "focal_length_calc", label="Focal Length", labelWidth=180, items=["Use O.E. Focal Distance", "Specify Value"], callback=self.set_FocalLengthCalc, sendSelectedValue=False, orientation="horizontal") self.le_focal_length = oasysgui.lineEdit(box_3, self, "ghy_focallength", "Focal Length value", labelWidth=260, valueType=float, orientation="horizontal") gui.separator(box_3) self.cb_distance_to_image_calc = gui.comboBox( box_3, self, "distance_to_image_calc", label="Distance to image", labelWidth=150, items=["Use O.E. Image Plane Distance", "Specify Value"], callback=self.set_DistanceToImageCalc, sendSelectedValue=False, orientation="horizontal") self.le_distance_to_image = oasysgui.lineEdit( box_3, self, "ghy_distance", "Distance to Image value", labelWidth=260, valueType=float, orientation="horizontal") gui.separator(box_3) self.cb_nf = gui.comboBox(box_3, self, "ghy_nf", label="Near Field Calculation", labelWidth=310, items=["No", "Yes"], sendSelectedValue=False, orientation="horizontal", callback=self.set_NF) box_4 = oasysgui.widgetBox(tab_adv, "Geometrical Parameters", addSpace=True, orientation="vertical", height=70) gui.comboBox(box_4, self, "ghy_automatic", label="Analize geometry to avoid unuseful calculations", labelWidth=310, items=["No", "Yes"], sendSelectedValue=False, orientation="horizontal") box_5 = oasysgui.widgetBox(tab_adv, "Plot Setting", addSpace=True, orientation="vertical", height=150) gui.comboBox(box_5, self, "plot_type", label="Plot Type", labelWidth=310, items=["2D", "3D"], sendSelectedValue=False, orientation="horizontal", callback=self.set_PlotType) self.box_pt_1 = oasysgui.widgetBox(box_5, "", addSpace=False, orientation="vertical", height=30) self.box_pt_2 = oasysgui.widgetBox(box_5, "", addSpace=False, orientation="vertical", height=30) gui.comboBox(self.box_pt_2, self, "plot_type_3D", label="3D Plot Aspect", labelWidth=310, items=["Lines", "Surface"], sendSelectedValue=False, orientation="horizontal") self.set_DiffPlane() self.set_DistanceToImageCalc() self.set_CalculationType() self.set_NF() self.set_PlotType() self.initializeTabs() adv_other_box = oasysgui.widgetBox(tab_bas, "Export Data", addSpace=False, orientation="vertical") gui.button(adv_other_box, self, "Export Error Analysis", callback=self.export_error_analysis) self.shadow_output = oasysgui.textArea(height=580, width=800) out_box = gui.widgetBox(out_tab, "System Output", addSpace=True, orientation="horizontal") out_box.layout().addWidget(self.shadow_output)
def __init__(self): super().__init__() self.runaction = widget.OWAction("Compute", self) self.runaction.triggered.connect(self.compute) self.addAction(self.runaction) self.setFixedWidth(1170) self.setFixedHeight(500) gui.separator(self.controlArea) box0 = oasysgui.widgetBox(self.controlArea, "", orientation="horizontal") #widget buttons: compute, set defaults, help button = gui.button(box0, self, "Compute", callback=self.compute) button.setFixedHeight(45) button = gui.button(box0, self, "Defaults", callback=self.defaults) button.setFixedHeight(45) tabs_setting = oasysgui.tabWidget(self.controlArea) tabs_setting.setFixedHeight(425) tab_step_1 = oasysgui.createTabPage(tabs_setting, "Line Density Calculation") tab_step_2 = oasysgui.createTabPage(tabs_setting, "Angles Calculation") tab_usa = oasysgui.createTabPage(tabs_setting, "Use of the Widget") tab_usa.setStyleSheet("background-color: white;") usage_box = oasysgui.widgetBox(tab_usa, "", addSpace=True, orientation="horizontal") label = QLabel("") label.setAlignment(Qt.AlignCenter) label.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) label.setPixmap(QPixmap(self.usage_path)) usage_box.layout().addWidget(label) box = oasysgui.widgetBox(tab_step_1, "VLS-PGM Layout Parameters", orientation="vertical") self.le_r_a = oasysgui.lineEdit(box, self, "r_a", "Distance Source-Grating", labelWidth=260, valueType=float, orientation="horizontal") self.le_r_b = oasysgui.lineEdit(box, self, "r_b", "Distance Grating-Exit Slits", labelWidth=260, valueType=float, orientation="horizontal") self.le_h = oasysgui.lineEdit(box, self, "h", "Vertical Distance Mirror-Grating", labelWidth=260, valueType=float, orientation="horizontal") self.le_l_e = oasysgui.lineEdit( box, self, "last_element_distance", "Distance Source-Last Image Plane\nbefore Mirror (if present)", labelWidth=260, valueType=float, orientation="horizontal") self.le_k = oasysgui.lineEdit(box, self, "k", "Line Density (0th coeff.)", labelWidth=260, valueType=float, orientation="horizontal") gui.separator(box) box_2 = oasysgui.widgetBox(tab_step_1, "Grating Design Parameters", orientation="vertical") gui.comboBox(box_2, self, "units_in_use", label="Units in use", labelWidth=260, items=["eV", "Angstroms"], callback=self.set_UnitsInUse, sendSelectedValue=False, orientation="horizontal") self.autosetting_box_units_1 = oasysgui.widgetBox( box_2, "", addSpace=False, orientation="vertical") oasysgui.lineEdit(self.autosetting_box_units_1, self, "photon_energy", "Photon energy [eV]", labelWidth=260, valueType=float, orientation="horizontal") self.autosetting_box_units_2 = oasysgui.widgetBox( box_2, "", addSpace=False, orientation="vertical") oasysgui.lineEdit(self.autosetting_box_units_2, self, "photon_wavelength", "Wavelength [Å]", labelWidth=260, valueType=float, orientation="horizontal") self.set_UnitsInUse() oasysgui.lineEdit(box_2, self, "c", "C factor for optimized energy", labelWidth=260, valueType=float, orientation="horizontal") oasysgui.lineEdit(box_2, self, "grating_diffraction_order", "Diffraction Order (- for inside orders)", labelWidth=260, valueType=int, orientation="horizontal") ################################## box_3 = oasysgui.widgetBox(tab_step_2, "Ray-Tracing Parameter", orientation="vertical") gui.comboBox(box_3, self, "new_units_in_use", label="Units in use", labelWidth=260, items=["eV", "Angstroms"], callback=self.set_UnitsInUse2, sendSelectedValue=False, orientation="horizontal") self.autosetting_box_units_3 = oasysgui.widgetBox( box_3, "", addSpace=False, orientation="vertical") oasysgui.lineEdit(self.autosetting_box_units_3, self, "new_photon_energy", "New photon energy [eV]", labelWidth=260, valueType=float, orientation="horizontal") self.autosetting_box_units_4 = oasysgui.widgetBox( box_3, "", addSpace=False, orientation="vertical") oasysgui.lineEdit(self.autosetting_box_units_4, self, "new_photon_wavelength", "New wavelength [Å]", labelWidth=260, valueType=float, orientation="horizontal") self.set_UnitsInUse2() tabs_out = oasysgui.tabWidget(self.mainArea) tab_out_1 = oasysgui.createTabPage(tabs_out, "Calculation Results") tab_out_2 = oasysgui.createTabPage(tabs_out, "Output") figure_box_1 = oasysgui.widgetBox(tab_out_1, "", addSpace=True, orientation="horizontal") label = QLabel("") label.setPixmap(QPixmap(self.image_path)) figure_box_1.layout().addWidget(label) output_box = oasysgui.widgetBox(tab_out_1, "", addSpace=True, orientation="horizontal") output_box_1 = oasysgui.widgetBox(output_box, "Design Ouput", addSpace=True, orientation="vertical") oasysgui.lineEdit(output_box_1, self, "design_alpha", "Alpha [deg]", labelWidth=220, valueType=float, orientation="horizontal") oasysgui.lineEdit(output_box_1, self, "design_beta", "Beta [deg]", labelWidth=220, valueType=float, orientation="horizontal") gui.separator(output_box_1) self.le_shadow_coeff_0 = oasysgui.lineEdit(output_box_1, self, "shadow_coeff_0", "Line Density 0-coeff.", labelWidth=220, valueType=float, orientation="horizontal") self.le_shadow_coeff_1 = oasysgui.lineEdit(output_box_1, self, "shadow_coeff_1", "Line Density 1-coeff.", labelWidth=220, valueType=float, orientation="horizontal") self.le_shadow_coeff_2 = oasysgui.lineEdit(output_box_1, self, "shadow_coeff_2", "Line Density 2-coeff.", labelWidth=220, valueType=float, orientation="horizontal") self.le_shadow_coeff_3 = oasysgui.lineEdit(output_box_1, self, "shadow_coeff_3", "Line Density 3-coeff.", labelWidth=220, valueType=float, orientation="horizontal") output_box_2 = oasysgui.widgetBox(output_box, "Ray-Tracing Ouput", addSpace=True, orientation="vertical") oasysgui.lineEdit(output_box_2, self, "raytracing_alpha", "Alpha [deg]", labelWidth=220, valueType=float, orientation="horizontal") oasysgui.lineEdit(output_box_2, self, "raytracing_beta", "Beta [deg]", labelWidth=220, valueType=float, orientation="horizontal") gui.separator(output_box_2) self.le_d_source_to_mirror = oasysgui.lineEdit( output_box_2, self, "d_source_to_mirror", "Source to Mirror distance", labelWidth=230, valueType=float, orientation="horizontal") self.le_d_source_plane_to_mirror = oasysgui.lineEdit( output_box_2, self, "d_source_plane_to_mirror", "Source Plane to Mirror distance", labelWidth=230, valueType=float, orientation="horizontal") self.le_d_mirror_to_grating = oasysgui.lineEdit( output_box_2, self, "d_mirror_to_grating", "Mirror to Grating distance", labelWidth=230, valueType=float, orientation="horizontal") self.shadow_output = oasysgui.textArea() out_box = oasysgui.widgetBox(tab_out_2, "System Output", addSpace=True, orientation="horizontal", height=400) out_box.layout().addWidget(self.shadow_output) gui.rubber(self.controlArea)
def __init__(self): super().__init__() self.runaction = widget.OWAction("Compute", self) self.runaction.triggered.connect(self.compute) self.addAction(self.runaction) self.setFixedWidth(550) self.setFixedHeight(550) idx = -1 gui.separator(self.controlArea) box0 = oasysgui.widgetBox(self.controlArea, "", orientation="horizontal") #widget buttons: compute, set defaults, help button = gui.button(box0, self, "Compute", callback=self.compute) button.setFixedHeight(45) button = gui.button(box0, self, "Defaults", callback=self.defaults) button.setFixedHeight(45) button = gui.button(box0, self, "Help", callback=self.help1) button.setFixedHeight(45) gui.separator(self.controlArea) tabs_setting = oasysgui.tabWidget(self.controlArea) tab_bas = oasysgui.createTabPage(tabs_setting, "Crystal Settings") tab_out = oasysgui.createTabPage(tabs_setting, "Output") tab_usa = oasysgui.createTabPage(tabs_setting, "Use of the Widget") tab_usa.setStyleSheet("background-color: white;") usage_box = oasysgui.widgetBox(tab_usa, "", addSpace=True, orientation="horizontal") label = QLabel("") label.setAlignment(Qt.AlignCenter) label.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) label.setPixmap(QPixmap(self.usage_path)) usage_box.layout().addWidget(label) #widget index 0 idx += 1 box = oasysgui.widgetBox(tab_bas, "Crystal Parameters", orientation="vertical") gui.comboBox(box, self, "DESCRIPTOR", label=self.unitLabels()[idx], addSpace=True, items=self.crystals, sendSelectedValue=False, valueType=int, orientation="horizontal", labelWidth=350) self.show_at(self.unitFlags()[idx], box) #widget index 1 idx += 1 box_miller = oasysgui.widgetBox(box, "", orientation="horizontal") oasysgui.lineEdit(box_miller, self, "H_MILLER_INDEX", label="Miller Indices [h k l]", addSpace=True, valueType=int, validator=QIntValidator(), labelWidth=350, orientation="horizontal") self.show_at(self.unitFlags()[idx], box_miller) #widget index 2 idx += 1 oasysgui.lineEdit(box_miller, self, "K_MILLER_INDEX", addSpace=True, valueType=int, validator=QIntValidator()) self.show_at(self.unitFlags()[idx], box) #widget index 3 idx += 1 oasysgui.lineEdit(box_miller, self, "L_MILLER_INDEX", addSpace=True, valueType=int, validator=QIntValidator(), orientation="horizontal") self.show_at(self.unitFlags()[idx], box) gui.separator(box) #widget index 4 idx += 1 oasysgui.lineEdit(box, self, "TEMPERATURE_FACTOR", label=self.unitLabels()[idx], addSpace=True, valueType=float, validator=QDoubleValidator(), labelWidth=350, orientation="horizontal") self.show_at(self.unitFlags()[idx], box) #widget index 5 idx += 1 oasysgui.lineEdit(box, self, "E_MIN", label=self.unitLabels()[idx], addSpace=True, valueType=float, validator=QDoubleValidator(), labelWidth=350, orientation="horizontal") self.show_at(self.unitFlags()[idx], box) #widget index 6 idx += 1 oasysgui.lineEdit(box, self, "E_MAX", label=self.unitLabels()[idx], addSpace=True, valueType=float, validator=QDoubleValidator(), labelWidth=350, orientation="horizontal") self.show_at(self.unitFlags()[idx], box) #widget index 7 idx += 1 oasysgui.lineEdit(box, self, "E_STEP", label=self.unitLabels()[idx], addSpace=True, valueType=float, validator=QDoubleValidator(), labelWidth=350, orientation="horizontal") self.show_at(self.unitFlags()[idx], box) #widget index 8 idx += 1 box_2 = oasysgui.widgetBox(box, "", addSpace=True, orientation="horizontal") self.le_SHADOW_FILE = oasysgui.lineEdit(box_2, self, "SHADOW_FILE", label=self.unitLabels()[idx], addSpace=True, labelWidth=180, orientation="horizontal") gui.button(box_2, self, "...", callback=self.selectFile) self.show_at(self.unitFlags()[idx], box) self.shadow_output = oasysgui.textArea() out_box = oasysgui.widgetBox(tab_out, "System Output", addSpace=True, orientation="horizontal", height=400) out_box.layout().addWidget(self.shadow_output) self.process_showers() gui.rubber(self.controlArea)
def __init__(self): super().__init__(self) self.runaction = widget.OWAction("Compute", self) self.runaction.triggered.connect(self.compute) self.addAction(self.runaction) 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.get_doc) 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, "FROM", label=self.unitLabels()[idx], addSpace=True, valueType=float, validator=QDoubleValidator()) self.show_at(self.unitFlags()[idx], box1) #widget index 1 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "TO", 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, "NPOINTS", label=self.unitLabels()[idx], addSpace=True, valueType=int, validator=QIntValidator()) self.show_at(self.unitFlags()[idx], box1) #widget index 3 idx += 1 box1 = gui.widgetBox(box) gui.comboBox(box1, self, "FUNCTION_NAME", label=self.unitLabels()[idx], addSpace=True, items=['sin(x)', 'cos(x)', 'x^2+x+1', 'Custom'], valueType=int, orientation="horizontal") self.show_at(self.unitFlags()[idx], box1) #widget index 4 idx += 1 box1 = gui.widgetBox(box) gui.lineEdit(box1, self, "CUSTOM", label=self.unitLabels()[idx], addSpace=True) self.show_at(self.unitFlags()[idx], box1) #widget index 5 idx += 1 box1 = gui.widgetBox(box) gui.comboBox(box1, self, "DUMP_TO_FILE", label=self.unitLabels()[idx], addSpace=True, items=['Yes', 'No'], valueType=int, orientation="horizontal") self.show_at(self.unitFlags()[idx], box1) #widget index 6 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(ZonePlate, self).__init__() self.runaction = widget.OWAction("Run Shadow/Trace", self) self.runaction.triggered.connect(self.traceOpticalElement) self.addAction(self.runaction) button_box = oasysgui.widgetBox(self.controlArea, "", addSpace=False, orientation="horizontal") button = gui.button(button_box, self, "Run Shadow/Trace", callback=self.traceOpticalElement) 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(150) gui.separator(self.controlArea) tabs_setting = oasysgui.tabWidget(self.controlArea) tabs_setting.setFixedHeight(self.TABS_AREA_HEIGHT) tabs_setting.setFixedWidth(self.CONTROL_AREA_WIDTH-5) tab_pos = oasysgui.createTabPage(tabs_setting, "Position") upper_box = oasysgui.widgetBox(tab_pos, "Optical Element Orientation", addSpace=True, orientation="vertical") self.le_source_plane_distance = oasysgui.lineEdit(upper_box, self, "source_plane_distance", "Source Plane Distance", labelWidth=260, valueType=float, orientation="horizontal") self.le_image_plane_distance = oasysgui.lineEdit(upper_box, self, "image_plane_distance", "Image Plane Distance", labelWidth=260, valueType=float, orientation="horizontal") tab_bas = oasysgui.createTabPage(tabs_setting, "Basic Setting") tab_adv = oasysgui.createTabPage(tabs_setting, "Advanced Setting") ########################################## ########################################## # BASIC SETTINGS ########################################## ########################################## tabs_basic_setting = oasysgui.tabWidget(tab_bas) tabs_setting.setFixedHeight(self.TABS_AREA_HEIGHT-5) tabs_setting.setFixedWidth(self.CONTROL_AREA_WIDTH-5) tab_zone_plate_1 = oasysgui.createTabPage(tabs_basic_setting, "Zone Plate Input Parameters") tab_zone_plate_2 = oasysgui.createTabPage(tabs_basic_setting, "Zone Plate Output Parameters") zp_box = oasysgui.widgetBox(tab_zone_plate_1, "Input Parameters", addSpace=False, orientation="vertical", height=290) oasysgui.lineEdit(zp_box, self, "delta_rn", u"\u03B4" + "rn [nm]", labelWidth=260, valueType=float, orientation="horizontal") oasysgui.lineEdit(zp_box, self, "diameter", "Z.P. Diameter [" + u"\u03BC" + "m]", labelWidth=260, valueType=float, orientation="horizontal") gui.comboBox(zp_box, self, "source_distance_flag", label="Source Distance", labelWidth=350, items=["Same as Source Plane", "Different"], callback=self.set_SourceDistanceFlag, sendSelectedValue=False, orientation="horizontal") self.zp_box_1 = oasysgui.widgetBox(zp_box, "", addSpace=False, orientation="vertical", height=30) self.zp_box_2 = oasysgui.widgetBox(zp_box, "", addSpace=False, orientation="vertical", height=30) self.le_source_distance = oasysgui.lineEdit(self.zp_box_1, self, "source_distance", "Source Distance", labelWidth=260, valueType=float, orientation="horizontal") self.set_SourceDistanceFlag() gui.comboBox(zp_box, self, "type_of_zp", label="Type of Zone Plate", labelWidth=350, items=["Amplitude", "Phase"], callback=self.set_TypeOfZP, sendSelectedValue=False, orientation="horizontal") gui.separator(zp_box, height=5) self.zp_box_3 = oasysgui.widgetBox(zp_box, "", addSpace=False, orientation="vertical") oasysgui.lineEdit(self.zp_box_3, self, "zone_plate_material", "Zone Plate Material", labelWidth=260, valueType=str, orientation="horizontal") oasysgui.lineEdit(self.zp_box_3, self, "zone_plate_thickness", "Zone Plate Thickness [nm]", labelWidth=260, valueType=float, orientation="horizontal") oasysgui.lineEdit(self.zp_box_3, self, "substrate_material", "Substrate Material", labelWidth=260, valueType=str, orientation="horizontal") oasysgui.lineEdit(self.zp_box_3, self, "substrate_thickness", "Substrate Thickness [nm]", labelWidth=260, valueType=float, orientation="horizontal") self.set_TypeOfZP() zp_out_box = oasysgui.widgetBox(tab_zone_plate_2, "Output Parameters", addSpace=False, orientation="vertical", height=270) self.le_avg_wavelength = oasysgui.lineEdit(zp_out_box, self, "avg_wavelength", "Average Wavelenght [nm]", labelWidth=260, valueType=float, orientation="horizontal") self.le_avg_wavelength.setReadOnly(True) font = QFont(self.le_avg_wavelength.font()) font.setBold(True) self.le_avg_wavelength.setFont(font) palette = QPalette(self.le_avg_wavelength.palette()) # make a copy of the palette palette.setColor(QPalette.Text, QColor('dark blue')) palette.setColor(QPalette.Base, QColor(243, 240, 160)) self.le_avg_wavelength.setPalette(palette) self.le_number_of_zones = oasysgui.lineEdit(zp_out_box, self, "number_of_zones", "Number of Zones", labelWidth=260, valueType=float, orientation="horizontal") self.le_number_of_zones.setReadOnly(True) font = QFont(self.le_number_of_zones.font()) font.setBold(True) self.le_number_of_zones.setFont(font) palette = QPalette(self.le_number_of_zones.palette()) # make a copy of the palette palette.setColor(QPalette.Text, QColor('dark blue')) palette.setColor(QPalette.Base, QColor(243, 240, 160)) self.le_number_of_zones.setPalette(palette) self.le_focal_distance = oasysgui.lineEdit(zp_out_box, self, "focal_distance", "Focal Distance", labelWidth=260, valueType=float, orientation="horizontal") self.le_focal_distance.setReadOnly(True) font = QFont(self.le_focal_distance.font()) font.setBold(True) self.le_focal_distance.setFont(font) palette = QPalette(self.le_focal_distance.palette()) # make a copy of the palette palette.setColor(QPalette.Text, QColor('dark blue')) palette.setColor(QPalette.Base, QColor(243, 240, 160)) self.le_focal_distance.setPalette(palette) self.le_image_position = oasysgui.lineEdit(zp_out_box, self, "image_position", "Image Position (Q)", labelWidth=260, valueType=float, orientation="horizontal") self.le_image_position.setReadOnly(True) font = QFont(self.le_image_position.font()) font.setBold(True) self.le_image_position.setFont(font) palette = QPalette(self.le_image_position.palette()) # make a copy of the palette palette.setColor(QPalette.Text, QColor('dark blue')) palette.setColor(QPalette.Base, QColor(243, 240, 160)) self.le_image_position.setPalette(palette) self.le_magnification = oasysgui.lineEdit(zp_out_box, self, "magnification", "Magnification", labelWidth=260, valueType=float, orientation="horizontal") self.le_magnification.setReadOnly(True) font = QFont(self.le_magnification.font()) font.setBold(True) self.le_magnification.setFont(font) palette = QPalette(self.le_magnification.palette()) # make a copy of the palette palette.setColor(QPalette.Text, QColor('dark blue')) palette.setColor(QPalette.Base, QColor(243, 240, 160)) self.le_magnification.setPalette(palette) self.le_efficiency = oasysgui.lineEdit(zp_out_box, self, "efficiency", "Efficiency % (Avg. Wavelength)", labelWidth=260, valueType=float, orientation="horizontal") self.le_efficiency.setReadOnly(True) font = QFont(self.le_efficiency.font()) font.setBold(True) self.le_efficiency.setFont(font) palette = QPalette(self.le_efficiency.palette()) # make a copy of the palette palette.setColor(QPalette.Text, QColor('dark blue')) palette.setColor(QPalette.Base, QColor(243, 240, 160)) self.le_efficiency.setPalette(palette) self.le_max_efficiency = oasysgui.lineEdit(zp_out_box, self, "max_efficiency", "Max Possible Efficiency %", labelWidth=260, valueType=float, orientation="horizontal") self.le_max_efficiency.setReadOnly(True) font = QFont(self.le_max_efficiency.font()) font.setBold(True) self.le_max_efficiency.setFont(font) palette = QPalette(self.le_max_efficiency.palette()) # make a copy of the palette palette.setColor(QPalette.Text, QColor('dark blue')) palette.setColor(QPalette.Base, QColor(243, 240, 160)) self.le_max_efficiency.setPalette(palette) self.le_thickness_max_efficiency = oasysgui.lineEdit(zp_out_box, self, "thickness_max_efficiency", "Max Efficiency Thickness [nm]", labelWidth=260, valueType=float, orientation="horizontal") self.le_thickness_max_efficiency.setReadOnly(True) font = QFont(self.le_thickness_max_efficiency.font()) font.setBold(True) self.le_thickness_max_efficiency.setFont(font) palette = QPalette(self.le_thickness_max_efficiency.palette()) # make a copy of the palette palette.setColor(QPalette.Text, QColor('dark blue')) palette.setColor(QPalette.Base, QColor(243, 240, 160)) self.le_thickness_max_efficiency.setPalette(palette) gui.comboBox(zp_out_box, self, "automatically_set_image_plane", label="Automatically set Image Plane Distance", labelWidth=350, items=["No", "Yes"], sendSelectedValue=False, orientation="horizontal") zp_out_box_2 = oasysgui.widgetBox(tab_zone_plate_2, "Efficiency Plot", addSpace=False, orientation="vertical", height=200) gui.comboBox(zp_out_box_2, self, "energy_plot", label="Plot Efficiency vs. Energy", labelWidth=350, items=["No", "Yes"], sendSelectedValue=False, orientation="horizontal", callback=self.set_EnergyPlot) self.zp_out_box_2_1 = oasysgui.widgetBox(zp_out_box_2, "", addSpace=False, orientation="vertical", height=50) self.zp_out_box_2_2 = oasysgui.widgetBox(zp_out_box_2, "", addSpace=False, orientation="vertical", height=50) oasysgui.lineEdit(self.zp_out_box_2_1, self, "energy_from", "Energy From [eV]", labelWidth=260, valueType=float, orientation="horizontal") oasysgui.lineEdit(self.zp_out_box_2_1, self, "energy_to", "Energy To [eV]", labelWidth=260, valueType=float, orientation="horizontal") gui.comboBox(zp_out_box_2, self, "thickness_plot", label="Plot Efficiency vs. Thickness", labelWidth=350, items=["No", "Yes"], sendSelectedValue=False, orientation="horizontal", callback=self.set_ThicknessPlot) self.zp_out_box_2_3 = oasysgui.widgetBox(zp_out_box_2, "", addSpace=False, orientation="vertical", height=50) self.zp_out_box_2_4 = oasysgui.widgetBox(zp_out_box_2, "", addSpace=False, orientation="vertical", height=50) oasysgui.lineEdit(self.zp_out_box_2_3, self, "thickness_from", "Thickness From [nm]", labelWidth=260, valueType=float, orientation="horizontal") oasysgui.lineEdit(self.zp_out_box_2_3, self, "thickness_to", "Thickness To [nm]", labelWidth=260, valueType=float, orientation="horizontal") self.set_EnergyPlot() self.set_ThicknessPlot() ########################################## ########################################## # ADVANCED SETTINGS ########################################## ########################################## tabs_advanced_setting = oasysgui.tabWidget(tab_adv) tab_adv_mir_mov = oasysgui.createTabPage(tabs_advanced_setting, "O.E. Movement") tab_adv_sou_mov = oasysgui.createTabPage(tabs_advanced_setting, "Source Movement") tab_adv_misc = oasysgui.createTabPage(tabs_advanced_setting, "Output Files") ########################################## # # TAB 2.2 - Mirror Movement # ########################################## mir_mov_box = oasysgui.widgetBox(tab_adv_mir_mov, "O.E. Movement Parameters", addSpace=False, orientation="vertical", height=230) gui.comboBox(mir_mov_box, self, "mirror_movement", label="O.E. Movement", labelWidth=350, items=["No", "Yes"], callback=self.set_MirrorMovement, sendSelectedValue=False, orientation="horizontal") gui.separator(mir_mov_box, height=10) self.mir_mov_box_1 = oasysgui.widgetBox(mir_mov_box, "", addSpace=False, orientation="vertical") self.le_mm_mirror_offset_x = oasysgui.lineEdit(self.mir_mov_box_1, self, "mm_mirror_offset_x", "O.E. Offset X", labelWidth=260, valueType=float, orientation="horizontal") oasysgui.lineEdit(self.mir_mov_box_1, self, "mm_mirror_rotation_x", "O.E. Rotation X [CCW, deg]", labelWidth=260, valueType=float, orientation="horizontal") self.le_mm_mirror_offset_y = oasysgui.lineEdit(self.mir_mov_box_1, self, "mm_mirror_offset_y", "O.E. Offset Y", labelWidth=260, valueType=float, orientation="horizontal") oasysgui.lineEdit(self.mir_mov_box_1, self, "mm_mirror_rotation_y", "O.E. Rotation Y [CCW, deg]", labelWidth=260, valueType=float, orientation="horizontal") self.le_mm_mirror_offset_z = oasysgui.lineEdit(self.mir_mov_box_1, self, "mm_mirror_offset_z", "O.E. Offset Z", labelWidth=260, valueType=float, orientation="horizontal") oasysgui.lineEdit(self.mir_mov_box_1, self, "mm_mirror_rotation_z", "O.E. Rotation Z [CCW, deg]", labelWidth=260, valueType=float, orientation="horizontal") self.set_MirrorMovement() ########################################## # # TAB 2.3 - Source Movement # ########################################## sou_mov_box = oasysgui.widgetBox(tab_adv_sou_mov, "Source Movement Parameters", addSpace=False, orientation="vertical", height=400) gui.comboBox(sou_mov_box, self, "source_movement", label="Source Movement", labelWidth=350, items=["No", "Yes"], callback=self.set_SourceMovement, sendSelectedValue=False, orientation="horizontal") gui.separator(sou_mov_box, height=10) self.sou_mov_box_1 = oasysgui.widgetBox(sou_mov_box, "", addSpace=False, orientation="vertical") oasysgui.lineEdit(self.sou_mov_box_1, self, "sm_angle_of_incidence", "Angle of Incidence [deg]", labelWidth=260, valueType=float, orientation="horizontal") self.le_sm_distance_from_mirror = oasysgui.lineEdit(self.sou_mov_box_1, self, "sm_distance_from_mirror", "Distance from O.E.", labelWidth=260, valueType=float, orientation="horizontal") oasysgui.lineEdit(self.sou_mov_box_1, self, "sm_z_rotation", "Z-rotation [deg]", labelWidth=260, valueType=float, orientation="horizontal") self.le_sm_offset_x_mirr_ref_frame = oasysgui.lineEdit(self.sou_mov_box_1, self, "sm_offset_x_mirr_ref_frame", "--", labelWidth=260, valueType=float, orientation="horizontal") self.le_sm_offset_y_mirr_ref_frame = oasysgui.lineEdit(self.sou_mov_box_1, self, "sm_offset_y_mirr_ref_frame", "--", labelWidth=260, valueType=float, orientation="horizontal") self.le_sm_offset_z_mirr_ref_frame = oasysgui.lineEdit(self.sou_mov_box_1, self, "sm_offset_z_mirr_ref_frame", "--", labelWidth=260, valueType=float, orientation="horizontal") self.le_sm_offset_x_source_ref_frame = oasysgui.lineEdit(self.sou_mov_box_1, self, "sm_offset_x_source_ref_frame", "--", labelWidth=260, valueType=float, orientation="horizontal") self.le_sm_offset_y_source_ref_frame = oasysgui.lineEdit(self.sou_mov_box_1, self, "sm_offset_y_source_ref_frame", "--", labelWidth=260, valueType=float, orientation="horizontal") self.le_sm_offset_z_source_ref_frame = oasysgui.lineEdit(self.sou_mov_box_1, self, "sm_offset_z_source_ref_frame", "--", labelWidth=260, valueType=float, orientation="horizontal") oasysgui.lineEdit(self.sou_mov_box_1, self, "sm_rotation_around_x", "rotation [CCW, deg] around X", labelWidth=260, valueType=float, orientation="horizontal") oasysgui.lineEdit(self.sou_mov_box_1, self, "sm_rotation_around_y", "rotation [CCW, deg] around Y", labelWidth=260, valueType=float, orientation="horizontal") oasysgui.lineEdit(self.sou_mov_box_1, self, "sm_rotation_around_z", "rotation [CCW, deg] around Z", labelWidth=260, valueType=float, orientation="horizontal") self.set_SourceMovement() ########################################## # # TAB 2.4 - Other # ########################################## adv_other_box = oasysgui.widgetBox(tab_adv_misc, "Optional file output", addSpace=False, orientation="vertical") gui.comboBox(adv_other_box, self, "file_to_write_out", label="Files to write out", labelWidth=150, items=["All", "Mirror", "Image", "None", "Debug (All + start.xx/end.xx)"], sendSelectedValue=False, orientation="horizontal") gui.comboBox(adv_other_box, self, "write_out_inc_ref_angles", label="Write out Incident/Reflected angles [angle.xx]", labelWidth=300, items=["No", "Yes"], sendSelectedValue=False, orientation="horizontal") gui.rubber(self.controlArea) gui.rubber(self.mainArea)
def __init__(self): super().__init__(show_general_option_box=False, show_automatic_box=False) self.runaction = widget.OWAction("Run SRW", self) self.runaction.triggered.connect(self.runSRWSource) self.addAction(self.runaction) button_box = oasysgui.widgetBox(self.controlArea, "", addSpace=False, orientation="horizontal") button = gui.button(button_box, self, "Run SRW Source", callback=self.runSRWSource) 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(150) gui.separator(self.controlArea) self.controlArea.setFixedWidth(self.CONTROL_AREA_WIDTH) self.tabs_setting = oasysgui.tabWidget(self.controlArea) self.tabs_setting.setFixedHeight(self.TABS_AREA_HEIGHT) self.tabs_setting.setFixedWidth(self.CONTROL_AREA_WIDTH-5) self.tab_source = oasysgui.createTabPage(self.tabs_setting, "Light Source Setting") left_box_1 = oasysgui.widgetBox(self.tab_source, "Electron Beam Parameters", addSpace=True, orientation="vertical", height=380) oasysgui.lineEdit(left_box_1, self, "electron_energy_in_GeV", "Energy [GeV]", labelWidth=260, valueType=float, orientation="horizontal", callback=self.callback_electron_energy) oasysgui.lineEdit(left_box_1, self, "electron_energy_spread", "Energy Spread", labelWidth=260, valueType=float, orientation="horizontal") oasysgui.lineEdit(left_box_1, self, "ring_current", "Ring Current [A]", labelWidth=260, valueType=float, orientation="horizontal") tab_electron = oasysgui.tabWidget(left_box_1) tab_beam = oasysgui.createTabPage(tab_electron, "Beam") tab_traj = oasysgui.createTabPage(tab_electron, "Trajectory") gui.separator(tab_beam) gui.comboBox(tab_beam, self, "type_of_properties", label="Electron Beam Properties", labelWidth=350, items=["From 2nd Moments", "From Size/Divergence", "From Twiss"], callback=self.set_TypeOfProperties, sendSelectedValue=False, orientation="horizontal") self.left_box_2_1 = oasysgui.widgetBox(tab_beam, "", addSpace=False, orientation="vertical", height=185) gui.separator(self.left_box_2_1) oasysgui.lineEdit(self.left_box_2_1, self, "moment_xx", "\u03c3x\u22c5\u03c3x [m\u00b2]", labelWidth=200, valueType=float, orientation="horizontal") oasysgui.lineEdit(self.left_box_2_1, self, "moment_xxp", "\u03c3x\u22c5\u03c3x' [m\u22c5rad]", labelWidth=200, valueType=float, orientation="horizontal") oasysgui.lineEdit(self.left_box_2_1, self, "moment_xpxp", "\u03c3x'\u22c5\u03c3x' [rad\u00b2]", labelWidth=200, valueType=float, orientation="horizontal") oasysgui.lineEdit(self.left_box_2_1, self, "moment_yy", "\u03c3y\u22c5\u03c3y [m\u00b2]", labelWidth=200, valueType=float, orientation="horizontal") oasysgui.lineEdit(self.left_box_2_1, self, "moment_yyp", "\u03c3y\u22c5\u03c3y' [m\u22c5rad]", labelWidth=200, valueType=float, orientation="horizontal") oasysgui.lineEdit(self.left_box_2_1, self, "moment_ypyp", "\u03c3y'\u22c5\u03c3y' [rad\u00b2]", labelWidth=200, valueType=float, orientation="horizontal") self.left_box_2_2 = oasysgui.widgetBox(tab_beam, "", addSpace=False, orientation="vertical", height=185) gui.separator(self.left_box_2_2) oasysgui.lineEdit(self.left_box_2_2, self, "electron_beam_size_h", "\u03c3x [m]", labelWidth=200, valueType=float, orientation="horizontal") oasysgui.lineEdit(self.left_box_2_2, self, "electron_beam_size_v", "\u03c3y [m]", labelWidth=200, valueType=float, orientation="horizontal") oasysgui.lineEdit(self.left_box_2_2, self, "electron_beam_divergence_h", "\u03c3x' [rad]", labelWidth=200, valueType=float, orientation="horizontal") oasysgui.lineEdit(self.left_box_2_2, self, "electron_beam_divergence_v", "\u03c3y' [rad]", labelWidth=200, valueType=float, orientation="horizontal") self.left_box_2_3 = oasysgui.widgetBox(tab_beam, "", addSpace=False, orientation="horizontal", height=185) left_box_2_3_l = oasysgui.widgetBox(self.left_box_2_3, "", addSpace=False, orientation="vertical", height=185) left_box_2_3_r = oasysgui.widgetBox(self.left_box_2_3, "", addSpace=False, orientation="vertical", height=185) gui.separator(left_box_2_3_l) gui.separator(left_box_2_3_r) oasysgui.lineEdit(left_box_2_3_l, self, "horizontal_emittance", "Emittance x [m]", labelWidth=100, valueType=float, orientation="horizontal") oasysgui.lineEdit(left_box_2_3_l, self, "horizontal_beta" , "\u03B2x [m]" , labelWidth=100, valueType=float, orientation="horizontal") oasysgui.lineEdit(left_box_2_3_l, self, "horizontal_alpha" , "\u03B1x [rad]" , labelWidth=100, valueType=float, orientation="horizontal") oasysgui.lineEdit(left_box_2_3_l, self, "horizontal_eta" , "\u03B7x [m]" , labelWidth=100, valueType=float, orientation="horizontal") oasysgui.lineEdit(left_box_2_3_l, self, "horizontal_etap" , "\u03B7x' [rad]" , labelWidth=100, valueType=float, orientation="horizontal") oasysgui.lineEdit(left_box_2_3_r, self, "vertical_emittance" , "Emittance y [m]", labelWidth=100, valueType=float, orientation="horizontal") oasysgui.lineEdit(left_box_2_3_r, self, "vertical_beta" , "\u03B2y [m]" , labelWidth=100, valueType=float, orientation="horizontal") oasysgui.lineEdit(left_box_2_3_r, self, "vertical_alpha" , "\u03B1y [rad]" , labelWidth=100, valueType=float, orientation="horizontal") oasysgui.lineEdit(left_box_2_3_r, self, "vertical_eta" , "\u03B7y [m]" , labelWidth=100, valueType=float, orientation="horizontal") oasysgui.lineEdit(left_box_2_3_r, self, "vertical_etap" , "\u03B7y' [rad]" , labelWidth=100, valueType=float, orientation="horizontal") self.set_TypeOfProperties() gui.comboBox(tab_traj, self, "type_of_initialization", label="Trajectory Initialization", labelWidth=140, items=["At Zero Point", "At Fixed Position", "Sampled from Phase Space"], callback=self.set_TypeOfInitialization, sendSelectedValue=False, orientation="horizontal") self.left_box_3_1 = oasysgui.widgetBox(tab_traj, "", addSpace=False, orientation="vertical", height=160) self.left_box_3_2 = oasysgui.widgetBox(tab_traj, "", addSpace=False, orientation="vertical", height=160) oasysgui.lineEdit(self.left_box_3_1, self, "moment_x", "x\u2080 [m]", labelWidth=200, valueType=float, orientation="horizontal") oasysgui.lineEdit(self.left_box_3_1, self, "moment_y", "y\u2080 [m]", labelWidth=200, valueType=float, orientation="horizontal") box = oasysgui.widgetBox(self.left_box_3_1, "", addSpace=False, orientation="horizontal") oasysgui.lineEdit(box, self, "moment_z", "z\u2080 [m]", labelWidth=160, valueType=float, orientation="horizontal") gui.button(box, self, "Auto", width=35, callback=self.set_z0Default) oasysgui.lineEdit(self.left_box_3_1, self, "moment_xp", "x'\u2080 [rad]", labelWidth=200, valueType=float, orientation="horizontal") oasysgui.lineEdit(self.left_box_3_1, self, "moment_yp", "y'\u2080 [rad]", labelWidth=200, valueType=float, orientation="horizontal") self.set_TypeOfInitialization() self.tab_plots = oasysgui.createTabPage(self.tabs_setting, "Wavefront Setting") self.tabs_plots_setting = oasysgui.tabWidget(self.tab_plots) # PROPAGATION ------------------------------------------- tab_wav = oasysgui.createTabPage(self.tabs_plots_setting, "Propagation") wav_box = oasysgui.widgetBox(tab_wav, "Wavefront Parameters", addSpace=True, orientation="vertical") self.build_wf_photon_energy_box(wav_box) oasysgui.lineEdit(wav_box, self, "wf_h_slit_gap", "H Slit Gap [m]", labelWidth=260, valueType=float, orientation="horizontal") oasysgui.lineEdit(wav_box, self, "wf_v_slit_gap", "V Slit Gap [m]", labelWidth=260, valueType=float, orientation="horizontal") oasysgui.lineEdit(wav_box, self, "wf_h_slit_points", "H Slit Points", labelWidth=260, valueType=int, orientation="horizontal") oasysgui.lineEdit(wav_box, self, "wf_v_slit_points", "V Slit Points", labelWidth=260, valueType=int, orientation="horizontal") oasysgui.lineEdit(wav_box, self, "wf_distance", "Propagation Distance [m]", labelWidth=260, valueType=float, orientation="horizontal") pre_box = oasysgui.widgetBox(tab_wav, "Precision Parameters", addSpace=False, orientation="vertical") gui.comboBox(pre_box, self, "wf_sr_method", label="Calculation Method", items=["Manual", "Auto"], labelWidth=260, sendSelectedValue=False, orientation="horizontal") oasysgui.lineEdit(pre_box, self, "wf_relative_precision", "Relative Precision", labelWidth=260, valueType=float, orientation="horizontal") oasysgui.lineEdit(pre_box, self, "wf_start_integration_longitudinal_position", "Longitudinal position to start integration\n(effective if < zEndInteg) [m]", labelWidth=260, valueType=float, orientation="horizontal") oasysgui.lineEdit(pre_box, self, "wf_end_integration_longitudinal_position", "Longitudinal position to finish integration\n(effective if > zStartInteg) [m]", labelWidth=260, valueType=float, orientation="horizontal") oasysgui.lineEdit(pre_box, self, "wf_number_of_points_for_trajectory_calculation", "Number of points for trajectory calculation", labelWidth=260, valueType=int, orientation="horizontal") gui.comboBox(pre_box, self, "wf_use_terminating_terms", label="Use \"terminating terms\"\n(i.e. asymptotic expansions at zStartInteg\nand zEndInteg) or not", items=["No", "Yes"], labelWidth=260, sendSelectedValue=False, orientation="horizontal") oasysgui.lineEdit(pre_box, self, "wf_sampling_factor_for_adjusting_nx_ny", "Sampling factor for adjusting nx/ny\n(effective if > 0)", labelWidth=260, valueType=int, orientation="horizontal") gui.rubber(self.controlArea)
def __init__(self, show_automatic_box=False): super().__init__(show_automatic_box=show_automatic_box) self.runaction = widget.OWAction("Run SRW", self) self.runaction.triggered.connect(self.runSRWSource) self.addAction(self.runaction) self.general_options_box.setVisible(False) button_box = oasysgui.widgetBox(self.controlArea, "", addSpace=False, orientation="horizontal") button = gui.button(button_box, self, "Run SRW Source", callback=self.runSRWSource) 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(150) gui.separator(self.controlArea) self.controlArea.setFixedWidth(self.CONTROL_AREA_WIDTH) self.tabs_setting = oasysgui.tabWidget(self.controlArea) self.tabs_setting.setFixedHeight(self.TABS_AREA_HEIGHT) self.tabs_setting.setFixedWidth(self.CONTROL_AREA_WIDTH - 5) self.tab_source = oasysgui.createTabPage(self.tabs_setting, "Light Source Setting") left_box_1 = oasysgui.widgetBox(self.tab_source, "Gaussian Source Parameters", addSpace=True, orientation="vertical", height=380) oasysgui.lineEdit(left_box_1, self, "beam_center_at_waist_x", "Beam center at waist x [m]", labelWidth=260, valueType=float, orientation="horizontal") oasysgui.lineEdit(left_box_1, self, "beam_center_at_waist_y", "Beam center at waist y [m]", labelWidth=260, valueType=float, orientation="horizontal") oasysgui.lineEdit(left_box_1, self, "beam_center_at_waist_z", "Beam center at waist z [m]", labelWidth=260, valueType=float, orientation="horizontal") oasysgui.lineEdit(left_box_1, self, "average_angle_at_waist_x", "Average angle at waist x [rad]", labelWidth=260, valueType=float, orientation="horizontal") oasysgui.lineEdit(left_box_1, self, "average_angle_at_waist_y", "Average angle at waist y [rad]", labelWidth=260, valueType=float, orientation="horizontal") oasysgui.lineEdit(left_box_1, self, "energy_per_pulse", "Energy per pulse [J]", labelWidth=260, valueType=float, orientation="horizontal") oasysgui.lineEdit(left_box_1, self, "repetition_rate", "Repetition rate [Hz]", labelWidth=260, valueType=float, orientation="horizontal") gui.comboBox(left_box_1, self, "polarization", label="Polarization", items=Polarization.tuple(), labelWidth=150, sendSelectedValue=False, orientation="horizontal") oasysgui.lineEdit(left_box_1, self, "horizontal_sigma_at_waist", "\u03c3x at waist [m]", labelWidth=260, valueType=float, orientation="horizontal") oasysgui.lineEdit(left_box_1, self, "vertical_sigma_at_waist", "\u03c3y at waist [m]", labelWidth=260, valueType=float, orientation="horizontal") oasysgui.lineEdit(left_box_1, self, "pulse_duration", "Pulse duration [s]", labelWidth=260, valueType=float, orientation="horizontal") oasysgui.lineEdit(left_box_1, self, "transverse_gauss_hermite_mode_order_x", "Transverse Gauss-Hermite mode order x", labelWidth=260, valueType=int, orientation="horizontal") oasysgui.lineEdit(left_box_1, self, "transverse_gauss_hermite_mode_order_y", "Transverse Gauss-Hermite mode order y", labelWidth=260, valueType=int, orientation="horizontal") self.tab_plots = oasysgui.createTabPage(self.tabs_setting, "Wavefront Setting") self.tabs_plots_setting = oasysgui.tabWidget(self.tab_plots) # PROPAGATION ------------------------------------------- tab_wav = oasysgui.createTabPage(self.tabs_plots_setting, "Propagation") wav_box = oasysgui.widgetBox(tab_wav, "Wavefront Parameters", addSpace=True, orientation="vertical") oasysgui.lineEdit(wav_box, self, "wf_photon_energy", "Photon Energy [eV]", labelWidth=260, valueType=float, orientation="horizontal") oasysgui.lineEdit(wav_box, self, "wf_h_slit_gap", "H Slit Gap [m]", labelWidth=260, valueType=float, orientation="horizontal") oasysgui.lineEdit(wav_box, self, "wf_v_slit_gap", "V Slit Gap [m]", labelWidth=260, valueType=float, orientation="horizontal") oasysgui.lineEdit(wav_box, self, "wf_h_slit_points", "H Slit Points", labelWidth=260, valueType=int, orientation="horizontal") oasysgui.lineEdit(wav_box, self, "wf_v_slit_points", "V Slit Points", labelWidth=260, valueType=int, orientation="horizontal") oasysgui.lineEdit(wav_box, self, "wf_distance", "Propagation Distance [m]", labelWidth=260, valueType=float, orientation="horizontal") pre_box = oasysgui.widgetBox(tab_wav, "Precision Parameters", addSpace=False, orientation="vertical") oasysgui.lineEdit( pre_box, self, "wf_sampling_factor_for_adjusting_nx_ny", "Sampling factor for adjusting nx/ny\n(effective if > 0)", labelWidth=260, valueType=int, orientation="horizontal") gui.rubber(self.controlArea)
def __init__(self): super().__init__() self.runaction = widget.OWAction("Run Hybrid", self) self.runaction.triggered.connect(self.run_hybrid) self.addAction(self.runaction) self.controlArea.setFixedWidth(self.CONTROL_AREA_WIDTH) button_box = oasysgui.widgetBox(self.controlArea, "", addSpace=False, orientation="horizontal") button = gui.button(button_box, self, "Run HYBRID", callback=self.run_hybrid) 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) main_tabs = oasysgui.tabWidget(self.mainArea) plot_tab = oasysgui.createTabPage(main_tabs, "Plots") out_tab = oasysgui.createTabPage(main_tabs, "Output") view_box = oasysgui.widgetBox(plot_tab, "", 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="Plot Results", labelWidth=220, items=["No", "Yes"], callback=self.set_PlotQuality, sendSelectedValue=False, orientation="horizontal") self.tabs = oasysgui.tabWidget(plot_tab) 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_adv = oasysgui.createTabPage(tabs_setting, "Advanced Setting") box_1 = oasysgui.widgetBox(tab_bas, "Calculation Parameters", addSpace=True, orientation="vertical", height=120) gui.comboBox(box_1, self, "ghy_diff_plane", label="Diffraction Plane", labelWidth=310, items=["Sagittal", "Tangential", "Both (2D)", "Both (1D+1D)"], callback=self.set_DiffPlane, sendSelectedValue=False, orientation="horizontal") gui.comboBox(box_1, self, "ghy_calcType", label="Calculation", labelWidth=70, items=self.get_calculation_type_items(), callback=self.set_CalculationType, sendSelectedValue=False, orientation="vertical") gui.separator(box_1, 10) box_2 = oasysgui.widgetBox(tab_bas, "Numerical Control Parameters", addSpace=True, orientation="vertical", height=140) self.le_nbins_x = oasysgui.lineEdit(box_2, self, "ghy_nbins_x", "Number of bins for I(Sagittal) histogram", labelWidth=260, valueType=int, orientation="horizontal") self.le_nbins_z = oasysgui.lineEdit(box_2, self, "ghy_nbins_z", "Number of bins for I(Tangential) histogram", labelWidth=260, valueType=int, orientation="horizontal") self.le_npeak = oasysgui.lineEdit(box_2, self, "ghy_npeak", "Number of diffraction peaks", labelWidth=260, valueType=int, orientation="horizontal") self.le_fftnpts = oasysgui.lineEdit(box_2, self, "ghy_fftnpts", "Number of points for FFT", labelWidth=260, valueType=int, orientation="horizontal") box_3 = oasysgui.widgetBox(tab_adv, "Propagation Parameters", addSpace=True, orientation="vertical", height=240) self.cb_focal_length_calc = gui.comboBox(box_3, self, "focal_length_calc", label="Focal Length", labelWidth=180, items=["Use O.E. Focal Distance", "Specify Value"], callback=self.set_FocalLengthCalc, sendSelectedValue=False, orientation="horizontal") self.le_focal_length = oasysgui.lineEdit(box_3, self, "ghy_focallength", "Focal Length value", labelWidth=260, valueType=float, orientation="horizontal") gui.separator(box_3) self.cb_distance_to_image_calc = gui.comboBox(box_3, self, "distance_to_image_calc", label="Distance to image", labelWidth=150, items=["Use O.E. Image Plane Distance", "Specify Value"], callback=self.set_DistanceToImageCalc, sendSelectedValue=False, orientation="horizontal") self.le_distance_to_image = oasysgui.lineEdit(box_3, self, "ghy_distance", "Distance to Image value", labelWidth=260, valueType=float, orientation="horizontal") gui.separator(box_3) self.cb_nf = gui.comboBox(box_3, self, "ghy_nf", label="Near Field Calculation", labelWidth=310, items=["No", "Yes"], sendSelectedValue=False, orientation="horizontal", callback=self.set_NF) gui.separator(box_3) gui.comboBox(box_3, self, "send_original_beam", label="Send Original Beam in case of failure", labelWidth=310, items=["No", "Yes"], sendSelectedValue=False, orientation="horizontal") box_4 = oasysgui.widgetBox(tab_adv, "Geometrical Parameters", addSpace=True, orientation="vertical", height=70) gui.comboBox(box_4, self, "ghy_automatic", label="Analize geometry to avoid unuseful calculations", labelWidth=310, items=["No", "Yes"], sendSelectedValue=False, orientation="horizontal") self.set_DiffPlane() self.set_DistanceToImageCalc() self.set_CalculationType() self.set_NF() self.initializeTabs() 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=220, items=["None", "Debug (star.xx)"], sendSelectedValue=False, orientation="horizontal") self.shadow_output = oasysgui.textArea(height=580, width=800) out_box = gui.widgetBox(out_tab, "System Output", addSpace=True, orientation="horizontal") out_box.layout().addWidget(self.shadow_output) self.set_PlotQuality()
def __init__(self): super().__init__() self.runaction = widget.OWAction("Compute", self) self.runaction.triggered.connect(self.compute) self.addAction(self.runaction) self.setFixedWidth(self.MAX_WIDTH) self.setFixedHeight(self.MAX_HEIGHT) gui.separator(self.controlArea) box0 = gui.widgetBox(self.controlArea, "", orientation="horizontal") #widget buttons: compute, set defaults, help button = gui.button(box0, self, "Compute", callback=self.compute) button.setFixedHeight(45) button = gui.button(box0, self, "Defaults", callback=self.defaults) button.setFixedHeight(45) button = gui.button(box0, self, "Help", callback=self.help1) button.setFixedHeight(45) gui.separator(self.controlArea) tabs_setting = oasysgui.tabWidget(self.controlArea) tabs_setting.setFixedHeight(self.TABS_AREA_HEIGHT) tabs_setting.setFixedWidth(self.CONTROL_AREA_WIDTH - 5) tab_input = oasysgui.createTabPage(tabs_setting, "Basic Settings") tab_input_2 = oasysgui.createTabPage(tabs_setting, "Bilayer Settings") tab_out = oasysgui.createTabPage(tabs_setting, "Output") tab_usa = oasysgui.createTabPage(tabs_setting, "Use of the Widget") tab_usa.setStyleSheet("background-color: white;") tab_usa.setStyleSheet("background-color: white;") usage_box = oasysgui.widgetBox(tab_usa, "", addSpace=True, orientation="horizontal") label = QLabel("") label.setAlignment(Qt.AlignCenter) label.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) label.setPixmap(QPixmap(self.usage_path)) usage_box.layout().addWidget(label) box = gui.widgetBox(tab_input, "Multilayer Parameters", orientation="vertical") idx = -1 #widget index 0 idx += 1 box_file = oasysgui.widgetBox(box, "", addSpace=True, orientation="horizontal") self.le_FILE = oasysgui.lineEdit(box_file, self, "FILE", label=self.unitLabels()[idx], addSpace=True, labelWidth=380, orientation="horizontal") gui.button(box_file, self, "...", callback=self.selectFile) self.show_at(self.unitFlags()[idx], box) #widget index 1 idx += 1 oasysgui.lineEdit(box, self, "E_MIN", label=self.unitLabels()[idx], addSpace=True, valueType=float, labelWidth=550, orientation="horizontal") self.show_at(self.unitFlags()[idx], box) #widget index 2 idx += 1 oasysgui.lineEdit(box, self, "E_MAX", label=self.unitLabels()[idx], addSpace=True, valueType=float, labelWidth=550, orientation="horizontal") self.show_at(self.unitFlags()[idx], box) #widget index 4 idx += 1 oasysgui.lineEdit(box, self, "S_MATERIAL", label=self.unitLabels()[idx], addSpace=True, labelWidth=550, orientation="horizontal", callback=self.set_SDensity) self.show_at(self.unitFlags()[idx], box) #widget index 3 idx += 1 oasysgui.lineEdit(box, self, "S_DENSITY", label=self.unitLabels()[idx], addSpace=True, valueType=float, labelWidth=550, orientation="horizontal") self.show_at(self.unitFlags()[idx], box) #widget index 6 idx += 1 oasysgui.lineEdit(box, self, "E_MATERIAL", label=self.unitLabels()[idx], addSpace=True, labelWidth=550, orientation="horizontal", callback=self.set_EDensity) self.show_at(self.unitFlags()[idx], box) #widget index 5 idx += 1 oasysgui.lineEdit(box, self, "E_DENSITY", label=self.unitLabels()[idx], addSpace=True, valueType=float, labelWidth=550, orientation="horizontal") self.show_at(self.unitFlags()[idx], box) #widget index 8 idx += 1 oasysgui.lineEdit(box, self, "O_MATERIAL", label=self.unitLabels()[idx], addSpace=True, labelWidth=550, orientation="horizontal", callback=self.set_ODensity) self.show_at(self.unitFlags()[idx], box) #widget index 7 idx += 1 oasysgui.lineEdit(box, self, "O_DENSITY", label=self.unitLabels()[idx], addSpace=True, valueType=float, labelWidth=550, orientation="horizontal") self.show_at(self.unitFlags()[idx], box) box_byl = gui.widgetBox(tab_input_2, "Multilayer Parameters", orientation="vertical") #widget index 9 idx += 1 gui.comboBox(box_byl, self, "GRADE_DEPTH", label=self.unitLabels()[idx], addSpace=True, items=[ 'No (Constant)', 'thicknesses, gamma, rough_even, rough_odd from file ' ], valueType=int, orientation="horizontal", labelWidth=270) self.show_at(self.unitFlags()[idx], box) box_2 = oasysgui.widgetBox(box_byl, "", orientation="vertical", height=160) #widget index 10 idx += 1 oasysgui.lineEdit(box_2, self, "N_PAIRS", label=self.unitLabels()[idx], addSpace=True, valueType=int, labelWidth=550, orientation="horizontal") self.show_at(self.unitFlags()[idx], box_2) #widget index 11 idx += 1 oasysgui.lineEdit(box_2, self, "THICKNESS", label=self.unitLabels()[idx], addSpace=True, valueType=float, labelWidth=550, orientation="horizontal") self.show_at(self.unitFlags()[idx], box_2) #widget index 12 idx += 1 oasysgui.lineEdit(box_2, self, "GAMMA", label=self.unitLabels()[idx], addSpace=True, valueType=float, labelWidth=550, orientation="horizontal") self.show_at(self.unitFlags()[idx], box_2) #widget index 13 idx += 1 oasysgui.lineEdit(box_2, self, "ROUGHNESS_EVEN", label=self.unitLabels()[idx], addSpace=True, valueType=float, labelWidth=550, orientation="horizontal") self.show_at(self.unitFlags()[idx], box_2) #widget index 14 idx += 1 oasysgui.lineEdit(box_2, self, "ROUGHNESS_ODD", label=self.unitLabels()[idx], addSpace=True, valueType=float, labelWidth=550, orientation="horizontal") self.show_at(self.unitFlags()[idx], box_2) #widget index 15 idx += 1 box_file_depth = oasysgui.widgetBox(box_byl, "", addSpace=True, orientation="horizontal", height=160) self.le_FILE_DEPTH = oasysgui.lineEdit(box_file_depth, self, "FILE_DEPTH", label=self.unitLabels()[idx], addSpace=True, labelWidth=400, orientation="horizontal") gui.button(box_file_depth, self, "...", callback=self.selectFileDepth) self.show_at(self.unitFlags()[idx], box_file_depth) #widget index 16 idx += 1 gui.comboBox(box_byl, self, "GRADE_SURFACE", label=self.unitLabels()[idx], addSpace=True, items=[ 'No (Constant)', 'thick and gamma graded (from spline files)', 'thickness graded (from quadratic fit)' ], valueType=int, orientation="horizontal", labelWidth=380) self.show_at(self.unitFlags()[idx], box) box_3_empty = oasysgui.widgetBox(box_byl, "", orientation="vertical", height=100) self.show_at("self.GRADE_SURFACE == 0", box_3_empty) box_3 = oasysgui.widgetBox(box_byl, "", orientation="vertical", height=100) #widget index 17 idx += 1 box_file_shadow = oasysgui.widgetBox(box_3, "", addSpace=True, orientation="horizontal") self.le_FILE_SHADOW = oasysgui.lineEdit(box_file_shadow, self, "FILE_SHADOW", label=self.unitLabels()[idx], addSpace=True, labelWidth=400, orientation="horizontal") gui.button(box_file_shadow, self, "...", callback=self.selectFileShadow) self.show_at(self.unitFlags()[idx], box_3) #widget index 18 idx += 1 box_file_thickness = oasysgui.widgetBox(box_3, "", addSpace=True, orientation="horizontal") self.le_FILE_THICKNESS = oasysgui.lineEdit( box_file_thickness, self, "FILE_THICKNESS", label=self.unitLabels()[idx], addSpace=True, labelWidth=400, orientation="horizontal") gui.button(box_file_thickness, self, "...", callback=self.selectFileThickness) self.show_at(self.unitFlags()[idx], box_3) #widget index 19 idx += 1 box_file_gamma = oasysgui.widgetBox(box_3, "", addSpace=True, orientation="horizontal") self.le_FILE_GAMMA = oasysgui.lineEdit(box_file_gamma, self, "FILE_GAMMA", label=self.unitLabels()[idx], addSpace=True, labelWidth=400, orientation="horizontal") gui.button(box_file_gamma, self, "...", callback=self.selectFileGamma) self.show_at(self.unitFlags()[idx], box_3) box_4 = oasysgui.widgetBox(box_byl, "", orientation="vertical", height=100) #widget index 20 idx += 1 oasysgui.lineEdit(box_4, self, "AA0", label=self.unitLabels()[idx], addSpace=True, valueType=float, labelWidth=550, orientation="horizontal") self.show_at(self.unitFlags()[idx], box_4) #widget index 21 idx += 1 oasysgui.lineEdit(box_4, self, "AA1", label=self.unitLabels()[idx], addSpace=True, valueType=float, labelWidth=550, orientation="horizontal") self.show_at(self.unitFlags()[idx], box_4) #widget index 22 idx += 1 oasysgui.lineEdit(box_4, self, "AA2", label=self.unitLabels()[idx], addSpace=True, valueType=float, labelWidth=550, orientation="horizontal") self.show_at(self.unitFlags()[idx], box_4) #widget index 23 idx += 1 oasysgui.lineEdit(box_4, self, "AA3", label=self.unitLabels()[idx], addSpace=True, valueType=float, labelWidth=550, orientation="horizontal") self.show_at(self.unitFlags()[idx], box_4) self.process_showers() self.shadow_output = oasysgui.textArea() out_box = oasysgui.widgetBox(tab_out, "System Output", addSpace=True, orientation="horizontal", height=400) out_box.layout().addWidget(self.shadow_output) gui.rubber(self.controlArea)
def __init__(self): super().__init__(is_automatic=True, show_view_options=True, show_script_tab=True) self.runaction = widget.OWAction("Generate Wavefront", self) self.runaction.triggered.connect(self.do_plot_and_send_mode) self.addAction(self.runaction) gui.separator(self.controlArea) gui.separator(self.controlArea) button_box = oasysgui.widgetBox(self.controlArea, "", addSpace=False, orientation="horizontal") button = gui.button(button_box, self, "Plot and Send mode", callback=self.do_plot_and_send_mode) 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.separator(self.controlArea) self.controlArea.setFixedWidth(self.CONTROL_AREA_WIDTH) tabs_setting = oasysgui.tabWidget(self.controlArea) tabs_setting.setFixedHeight(self.TABS_AREA_HEIGHT + 50) tabs_setting.setFixedWidth(self.CONTROL_AREA_WIDTH - 5) self.tab_settings = oasysgui.createTabPage(tabs_setting, "Settings") # # Settings # gui.comboBox(self.tab_settings, self, "NORMALIZATION", label="Renormalize modes ", addSpace=False, items=[ "No (pure eigenvectors)", "Yes (to carry intensity from eigenvalues)" ], valueType=int, orientation="horizontal", callback=self.do_plot_and_send_mode) gui.comboBox(self.tab_settings, self, "TYPE_PRESENTATION", label="Display coherent mode ", addSpace=False, items=self.list_TYPE_PRESENTATION(), valueType=int, orientation="horizontal", callback=self.do_plot_and_send_mode) gui.comboBox(self.tab_settings, self, "INDIVIDUAL_MODES", label="Load all modes in memory ", addSpace=False, items=[ 'No [Fast, Recommended]', 'Yes [Slow, Memory hungry]', ], valueType=int, orientation="horizontal", callback=self.do_plot_and_send_mode) gui.comboBox(self.tab_settings, self, "REFERENCE_SOURCE", label="Display reference source ", addSpace=False, items=[ 'No', 'Yes', ], valueType=int, orientation="horizontal", callback=self.do_plot_and_send_mode) mode_index_box = oasysgui.widgetBox(self.tab_settings, "", addSpace=True, orientation="horizontal") left_box_5 = oasysgui.widgetBox( mode_index_box, "", addSpace=True, orientation="horizontal", ) oasysgui.lineEdit(left_box_5, self, "MODE_INDEX", "Send mode", labelWidth=200, valueType=int, tooltip="mode_index", orientation="horizontal", callback=self.do_plot_and_send_mode) gui.button(left_box_5, self, "+1", callback=self.increase_mode_index, width=30) gui.button(left_box_5, self, "-1", callback=self.decrease_mode_index, width=30) gui.button(left_box_5, self, "0", callback=self.reset_mode_index, width=30)
def __init__(self): super().__init__() self.runaction = widget.OWAction("Compute", self) self.runaction.triggered.connect(self.compute) self.addAction(self.runaction) self.setFixedWidth(550) self.setFixedHeight(550) gui.separator(self.controlArea) box0 = gui.widgetBox(self.controlArea, "",orientation="horizontal") #widget buttons: compute, set defaults, help button = gui.button(box0, self, "Compute", callback=self.compute) button.setFixedHeight(45) button = gui.button(box0, self, "Defaults", callback=self.defaults) button.setFixedHeight(45) button = gui.button(box0, self, "Help", callback=self.help1) button.setFixedHeight(45) gui.separator(self.controlArea) tabs_setting = oasysgui.tabWidget(self.controlArea) tab_bas = oasysgui.createTabPage(tabs_setting, "Reflectivity Settings") tab_out = oasysgui.createTabPage(tabs_setting, "Output") tab_usa = oasysgui.createTabPage(tabs_setting, "Use of the Widget") tab_usa.setStyleSheet("background-color: white;") usage_box = oasysgui.widgetBox(tab_usa, "", addSpace=True, orientation="horizontal") label = QLabel("") label.setAlignment(Qt.AlignCenter) label.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) label.setPixmap(QPixmap(self.usage_path)) usage_box.layout().addWidget(label) box = oasysgui.widgetBox(tab_bas, "Reflectivity Parameters", orientation="vertical") idx = -1 #widget index 0 idx += 1 oasysgui.lineEdit(box, self, "SYMBOL", label=self.unitLabels()[idx], addSpace=True, labelWidth=350, orientation="horizontal", callback=self.set_Density) self.show_at(self.unitFlags()[idx], box) #widget index 1 idx += 1 oasysgui.lineEdit(box, self, "DENSITY", label=self.unitLabels()[idx], addSpace=True, valueType=float, labelWidth=350, orientation="horizontal") self.show_at(self.unitFlags()[idx], box) #widget index 2 idx += 1 box_2 = oasysgui.widgetBox(box, "", addSpace=True, orientation="horizontal") self.le_SHADOW_FILE = oasysgui.lineEdit(box_2, self, "SHADOW_FILE", label=self.unitLabels()[idx], addSpace=True, labelWidth=180, orientation="horizontal") gui.button(box_2, self, "...", callback=self.selectFile) self.show_at(self.unitFlags()[idx], box) #widget index 3 idx += 1 oasysgui.lineEdit(box, self, "E_MIN", label=self.unitLabels()[idx], addSpace=True, valueType=float, labelWidth=350, orientation="horizontal") self.show_at(self.unitFlags()[idx], box) #widget index 4 idx += 1 oasysgui.lineEdit(box, self, "E_MAX", label=self.unitLabels()[idx], addSpace=True, valueType=float, labelWidth=350, orientation="horizontal") self.show_at(self.unitFlags()[idx], box) #widget index 5 idx += 1 oasysgui.lineEdit(box, self, "E_STEP", label=self.unitLabels()[idx], addSpace=True, valueType=float, labelWidth=350, orientation="horizontal") self.show_at(self.unitFlags()[idx], box) self.process_showers() self.shadow_output = oasysgui.textArea() out_box = oasysgui.widgetBox(tab_out, "System Output", addSpace=True, orientation="horizontal", height=400) out_box.layout().addWidget(self.shadow_output) gui.rubber(self.controlArea)
def __init__(self, show_automatic_box=True): super().__init__() self.runaction = widget.OWAction("Merge Beams", self) self.runaction.triggered.connect(self.merge_beams) self.addAction(self.runaction) self.setFixedWidth(470) self.setFixedHeight(470) gen_box = gui.widgetBox(self.controlArea, "Merge Shadow Beams", addSpace=True, orientation="vertical") button_box = oasysgui.widgetBox(gen_box, "", addSpace=False, orientation="horizontal") button = gui.button(button_box, self, "Merge Beams and Send", callback=self.merge_beams) 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) weight_box = oasysgui.widgetBox(gen_box, "Relative Weights", addSpace=False, orientation="vertical") gui.comboBox(weight_box, self, "use_weights", label="Use Relative Weights?", labelWidth=350, items=["No", "Yes"], callback=self.set_UseWeights, sendSelectedValue=False, orientation="horizontal") gui.separator(weight_box, height=10) self.le_weight_input_beam1 = oasysgui.lineEdit( weight_box, self, "weight_input_beam1", "Input Beam 1 weight", labelWidth=300, valueType=float, orientation="horizontal") self.le_weight_input_beam2 = oasysgui.lineEdit( weight_box, self, "weight_input_beam2", "Input Beam 2 weight", labelWidth=300, valueType=float, orientation="horizontal") self.le_weight_input_beam3 = oasysgui.lineEdit( weight_box, self, "weight_input_beam3", "Input Beam 3 weight", labelWidth=300, valueType=float, orientation="horizontal") self.le_weight_input_beam4 = oasysgui.lineEdit( weight_box, self, "weight_input_beam4", "Input Beam 4 weight", labelWidth=300, valueType=float, orientation="horizontal") self.le_weight_input_beam5 = oasysgui.lineEdit( weight_box, self, "weight_input_beam5", "Input Beam 5 weight", labelWidth=300, valueType=float, orientation="horizontal") self.le_weight_input_beam6 = oasysgui.lineEdit( weight_box, self, "weight_input_beam6", "Input Beam 6 weight", labelWidth=300, valueType=float, orientation="horizontal") self.le_weight_input_beam7 = oasysgui.lineEdit( weight_box, self, "weight_input_beam7", "Input Beam 7 weight", labelWidth=300, valueType=float, orientation="horizontal") self.le_weight_input_beam8 = oasysgui.lineEdit( weight_box, self, "weight_input_beam8", "Input Beam 8 weight", labelWidth=300, valueType=float, orientation="horizontal") self.le_weight_input_beam9 = oasysgui.lineEdit( weight_box, self, "weight_input_beam9", "Input Beam 9 weight", labelWidth=300, valueType=float, orientation="horizontal") self.le_weight_input_beam10 = oasysgui.lineEdit( weight_box, self, "weight_input_beam10", "Input Beam 10 weight", labelWidth=300, valueType=float, orientation="horizontal") self.le_weight_input_beam1.setEnabled(False) self.le_weight_input_beam2.setEnabled(False) self.le_weight_input_beam3.setEnabled(False) self.le_weight_input_beam4.setEnabled(False) self.le_weight_input_beam5.setEnabled(False) self.le_weight_input_beam6.setEnabled(False) self.le_weight_input_beam7.setEnabled(False) self.le_weight_input_beam8.setEnabled(False) self.le_weight_input_beam9.setEnabled(False) self.le_weight_input_beam10.setEnabled(False)
def __init__(self): super().__init__() self.runaction = widget.OWAction("Run Shadow4/Source", self) self.runaction.triggered.connect(self.run_shadow4) self.addAction(self.runaction) button_box = oasysgui.widgetBox(self.controlArea, "", addSpace=False, orientation="horizontal") button = gui.button(button_box, self, "Run shadow4/source", callback=self.run_shadow4) 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(150) self.tabs_control_area = oasysgui.tabWidget(self.controlArea) self.tabs_control_area.setFixedHeight(self.TABS_AREA_HEIGHT) self.tabs_control_area.setFixedWidth(self.CONTROL_AREA_WIDTH-5) self.tab_electron_beam = oasysgui.createTabPage(self.tabs_control_area, "Electron Beam Setting") oasysgui.lineEdit(self.tab_electron_beam, self, "source_name", "Electron Beam Name", labelWidth=260, valueType=str, orientation="horizontal") self.electron_beam_box = oasysgui.widgetBox(self.tab_electron_beam, "Electron Beam/Machine Parameters", addSpace=False, orientation="vertical") oasysgui.lineEdit(self.electron_beam_box, self, "electron_energy_in_GeV", "Energy [GeV]", labelWidth=260, valueType=float, orientation="horizontal") oasysgui.lineEdit(self.electron_beam_box, self, "electron_energy_spread", "Energy Spread", labelWidth=260, valueType=float, orientation="horizontal") oasysgui.lineEdit(self.electron_beam_box, self, "ring_current", "Ring Current [A]", labelWidth=260, valueType=float, orientation="horizontal") gui.comboBox(self.electron_beam_box, self, "type_of_properties", label="Electron Beam Properties", labelWidth=350, items=["From 2nd Moments", "From Size/Divergence", "From Twiss parameters","Zero emittance"], callback=self.set_TypeOfProperties, sendSelectedValue=False, orientation="horizontal") self.left_box_2_1 = oasysgui.widgetBox(self.electron_beam_box, "", addSpace=False, orientation="vertical", height=150) oasysgui.lineEdit(self.left_box_2_1, self, "moment_xx", "<x x> [m^2]", labelWidth=260, valueType=float, orientation="horizontal") oasysgui.lineEdit(self.left_box_2_1, self, "moment_xxp", "<x x'> [m.rad]", labelWidth=260, valueType=float, orientation="horizontal") oasysgui.lineEdit(self.left_box_2_1, self, "moment_xpxp", "<x' x'> [rad^2]", labelWidth=260, valueType=float, orientation="horizontal") oasysgui.lineEdit(self.left_box_2_1, self, "moment_yy", "<y y> [m^2]", labelWidth=260, valueType=float, orientation="horizontal") oasysgui.lineEdit(self.left_box_2_1, self, "moment_yyp", "<y y'> [m.rad]", labelWidth=260, valueType=float, orientation="horizontal") oasysgui.lineEdit(self.left_box_2_1, self, "moment_ypyp", "<y' y'> [rad^2]", labelWidth=260, valueType=float, orientation="horizontal") self.left_box_2_2 = oasysgui.widgetBox(self.electron_beam_box, "", addSpace=False, orientation="vertical", height=150) oasysgui.lineEdit(self.left_box_2_2, self, "electron_beam_size_h", "Horizontal Beam Size \u03c3x [m]", labelWidth=260, valueType=float, orientation="horizontal") oasysgui.lineEdit(self.left_box_2_2, self, "electron_beam_size_v", "Vertical Beam Size \u03c3y [m]", labelWidth=260, valueType=float, orientation="horizontal") oasysgui.lineEdit(self.left_box_2_2, self, "electron_beam_divergence_h", "Horizontal Beam Divergence \u03c3'x [rad]", labelWidth=260, valueType=float, orientation="horizontal") oasysgui.lineEdit(self.left_box_2_2, self, "electron_beam_divergence_v", "Vertical Beam Divergence \u03c3'y [rad]", labelWidth=260, valueType=float, orientation="horizontal") self.left_box_2_3 = oasysgui.widgetBox(self.electron_beam_box, "", addSpace=False, orientation="horizontal",height=150) self.left_box_2_3_l = oasysgui.widgetBox(self.left_box_2_3, "", addSpace=False, orientation="vertical") self.left_box_2_3_r = oasysgui.widgetBox(self.left_box_2_3, "", addSpace=False, orientation="vertical") oasysgui.lineEdit(self.left_box_2_3_l, self, "electron_beam_emittance_h", "\u03B5x [m.rad]",labelWidth=75, valueType=float, orientation="horizontal") oasysgui.lineEdit(self.left_box_2_3_l, self, "electron_beam_alpha_h", "\u03B1x", labelWidth=75, valueType=float, orientation="horizontal") oasysgui.lineEdit(self.left_box_2_3_l, self, "electron_beam_beta_h", "\u03B2x [m]", labelWidth=75, valueType=float, orientation="horizontal") oasysgui.lineEdit(self.left_box_2_3_l, self, "electron_beam_eta_h", "\u03B7x", labelWidth=75, valueType=float, orientation="horizontal") oasysgui.lineEdit(self.left_box_2_3_l, self, "electron_beam_etap_h", "\u03B7'x", labelWidth=75, valueType=float, orientation="horizontal") oasysgui.lineEdit(self.left_box_2_3_r, self, "electron_beam_emittance_v", "\u03B5y [m.rad]",labelWidth=75, valueType=float, orientation="horizontal") oasysgui.lineEdit(self.left_box_2_3_r, self, "electron_beam_alpha_v", "\u03B1y", labelWidth=75,valueType=float, orientation="horizontal") oasysgui.lineEdit(self.left_box_2_3_r, self, "electron_beam_beta_v", "\u03B2y [m]", labelWidth=75, valueType=float, orientation="horizontal") oasysgui.lineEdit(self.left_box_2_3_r, self, "electron_beam_eta_v", "\u03B7y", labelWidth=75, valueType=float, orientation="horizontal") oasysgui.lineEdit(self.left_box_2_3_r, self, "electron_beam_etap_v", "\u03B7'y", labelWidth=75, valueType=float, orientation="horizontal") self.set_TypeOfProperties() 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 = oasysgui.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=250) 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.setStyleSheet("background-color: #FBFBFB;") self.table.setAlternatingRowColors(True) self.table.horizontalHeader().setSectionResizeMode(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=370) 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.separator(output_profile_box) gui.comboBox(output_profile_box, self, "modify_y", label="Modify Length?", labelWidth=150, 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=60) self.modify_box_2 = oasysgui.widgetBox(output_profile_box, "", addSpace=False, orientation="vertical", height=60) self.le_new_length_1 = oasysgui.lineEdit(self.modify_box_2, self, "new_length", "New Length", labelWidth=300, valueType=float, orientation="horizontal") self.modify_box_3 = oasysgui.widgetBox(output_profile_box, "", addSpace=False, orientation="vertical", height=60) self.le_new_length_2 = 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=False, orientation="vertical", height=60) self.output_profile_box_2 = oasysgui.widgetBox(output_profile_box, "", addSpace=False, orientation="vertical", height=60) 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 = oasysgui.textArea(height=400) 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 __init__(self): super().__init__() self.runaction = widget.OWAction("Calculate Waviness", self) self.runaction.triggered.connect(self.calculate_waviness_ni) self.addAction(self.runaction) self.runaction = widget.OWAction("Generate Waviness File", self) self.runaction.triggered.connect(self.generate_waviness_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()) gui.separator(self.controlArea) button_box = oasysgui.widgetBox(self.controlArea, "", addSpace=False, orientation="horizontal") button = gui.button(button_box, self, "Calculate\nWaviness", callback=self.calculate_waviness) button.setFixedHeight(45) button = gui.button(button_box, self, "Generate\nWaviness File", callback=self.generate_waviness_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 = oasysgui.tabWidget(self.controlArea) tabs_setting.setFixedHeight(self.TABS_AREA_HEIGHT) tabs_setting.setFixedWidth(self.CONTROL_AREA_WIDTH - 5) tab_input = oasysgui.createTabPage(tabs_setting, "Input Parameter") tab_harmonics = oasysgui.createTabPage(tabs_setting, "Harmonics") tab_out = oasysgui.createTabPage(tabs_setting, "Output") tab_usa = oasysgui.createTabPage(tabs_setting, "Use of the Widget") tab_usa.setStyleSheet("background-color: white;") usage_box = oasysgui.widgetBox(tab_usa, "", addSpace=True, orientation="horizontal") label = QLabel("") label.setAlignment(Qt.AlignCenter) label.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) label.setPixmap(QPixmap(self.usage_path)) usage_box.layout().addWidget(label) self.input_box = oasysgui.widgetBox(tab_input, "Inputs", addSpace=True, orientation="vertical") gui.button(self.input_box, self, "Load xsh_waviness input file ...", callback=self.load_inp_file) gui.separator(self.input_box) oasysgui.lineEdit(self.input_box, self, "number_of_points_x", "Number of Points (<201) X (width)", labelWidth=260, valueType=int, orientation="horizontal") oasysgui.lineEdit(self.input_box, self, "number_of_points_y", "Number of Points (<201) Y (length)", labelWidth=260, valueType=int, orientation="horizontal") gui.separator(self.input_box) self.le_dimension_x = oasysgui.lineEdit(self.input_box, self, "dimension_x", "Dimensions X (width)", labelWidth=260, valueType=float, orientation="horizontal") self.le_dimension_y = oasysgui.lineEdit(self.input_box, self, "dimension_y", "Dimensions Y (length)", labelWidth=260, valueType=float, orientation="horizontal") gui.separator(self.input_box) oasysgui.lineEdit(self.input_box, self, "estimated_slope_error", "Estimated slope error [arcsec]", labelWidth=260, valueType=float, orientation="horizontal") oasysgui.lineEdit(self.input_box, self, "montecarlo_seed", "Monte Carlo initial seed", labelWidth=260, valueType=int, orientation="horizontal") self.output_box = oasysgui.widgetBox(tab_input, "Outputs", addSpace=True, orientation="vertical") gui.button(self.output_box, self, "Write xsh_waviness input file (optional) ...", callback=self.write_inp_file) gui.separator(self.output_box) self.select_file_box = oasysgui.widgetBox(self.output_box, "", addSpace=True, orientation="horizontal") self.le_waviness_file_name = oasysgui.lineEdit( self.select_file_box, self, "waviness_file_name", "Output File Name", labelWidth=120, valueType=str, orientation="horizontal") gui.button(self.select_file_box, self, "...", callback=self.selectFile) self.harmonics_box = oasysgui.widgetBox(tab_harmonics, "Harmonics", addSpace=True, orientation="vertical", height=580) oasysgui.lineEdit(self.harmonics_box, self, "harmonic_maximum_index", "Harmonic Maximum Index", labelWidth=260, valueType=int, orientation="horizontal", callback=self.set_harmonics) gui.separator(self.harmonics_box) self.scrollarea = QScrollArea() self.scrollarea.setMaximumWidth(400) self.harmonics_box.layout().addWidget(self.scrollarea, alignment=Qt.AlignHCenter) self.shadow_output = oasysgui.textArea() out_box = oasysgui.widgetBox(tab_out, "System Output", addSpace=True, orientation="horizontal", height=580) out_box.layout().addWidget(self.shadow_output) gui.rubber(self.controlArea) 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 [nm]") self.figure_canvas = FigureCanvas3D(ax=self.axis, fig=self.figure) self.mainArea.layout().addWidget(self.figure_canvas) gui.rubber(self.mainArea)
def __init__(self): super().__init__() self.runaction = widget.OWAction("Calculate Height Profile", self) self.runaction.triggered.connect(self.calculate_heigth_profile) self.addAction(self.runaction) self.runaction = widget.OWAction("Generate Height Profile File", self) self.runaction.triggered.connect(self.generate_heigth_profile_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()) 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 = oasysgui.tabWidget(self.controlArea) tabs_setting.setFixedHeight(self.TABS_AREA_HEIGHT) tabs_setting.setFixedWidth(self.CONTROL_AREA_WIDTH - 5) tab_input = oasysgui.createTabPage(tabs_setting, "Input Parameters") tab_out = oasysgui.createTabPage(tabs_setting, "Output") #/ --------------------------------------- input_box_l = oasysgui.widgetBox(tab_input, "Calculation Parameters", addSpace=True, orientation="vertical") gui.comboBox(input_box_l, self, "kind_of_profile_y", label="Kind of Profile", labelWidth=260, items=["Fractal", "Gaussian"], callback=self.set_KindOfProfileY, sendSelectedValue=False, orientation="horizontal") gui.separator(input_box_l) self.kind_of_profile_y_box_1 = oasysgui.widgetBox( input_box_l, "", addSpace=False, orientation="vertical", height=230) self.le_dimension_y = oasysgui.lineEdit(self.kind_of_profile_y_box_1, self, "dimension_y", "Dimensions", labelWidth=260, valueType=float, orientation="horizontal") self.le_step_y = oasysgui.lineEdit(self.kind_of_profile_y_box_1, self, "step_y", "Step", labelWidth=260, valueType=float, orientation="horizontal") oasysgui.lineEdit(self.kind_of_profile_y_box_1, self, "montecarlo_seed_y", "Monte Carlo initial seed", labelWidth=260, valueType=int, orientation="horizontal") self.kind_of_profile_y_box_1_1 = oasysgui.widgetBox( self.kind_of_profile_y_box_1, "", addSpace=False, orientation="vertical") oasysgui.lineEdit(self.kind_of_profile_y_box_1_1, self, "power_law_exponent_beta_y", "Beta Value", labelWidth=260, valueType=float, orientation="horizontal") self.kind_of_profile_y_box_1_2 = oasysgui.widgetBox( self.kind_of_profile_y_box_1, "", addSpace=False, orientation="vertical") self.le_correlation_length_y = oasysgui.lineEdit( self.kind_of_profile_y_box_1_2, self, "correlation_length_y", "Correlation Length", labelWidth=260, valueType=float, orientation="horizontal") gui.separator(self.kind_of_profile_y_box_1) gui.comboBox( self.kind_of_profile_y_box_1, self, "error_type_y", label="Normalization to", labelWidth=270, items=["Figure Error (nm)", "Slope Error (" + "\u03BC" + "rad)"], sendSelectedValue=False, orientation="horizontal") oasysgui.lineEdit(self.kind_of_profile_y_box_1, self, "rms_y", "Rms Value", labelWidth=260, valueType=float, orientation="horizontal") self.set_KindOfProfileY() self.output_box = oasysgui.widgetBox(tab_input, "Outputs", addSpace=True, orientation="vertical") self.select_file_box = oasysgui.widgetBox(self.output_box, "", addSpace=False, orientation="horizontal") self.le_heigth_profile_file_name = oasysgui.lineEdit( self.select_file_box, self, "heigth_profile_file_name", "Output File Name", labelWidth=120, valueType=str, orientation="horizontal") gui.button(self.select_file_box, self, "...", callback=self.selectFile) self.wise_output = QTextEdit() self.wise_output.setReadOnly(True) self.wise_output.setStyleSheet("background-color: white;") out_box = oasysgui.widgetBox(tab_out, "System Output", addSpace=True, orientation="horizontal", height=580) out_box.layout().addWidget(self.wise_output) gui.rubber(self.controlArea) main_tabs = oasysgui.tabWidget(self.mainArea) self.plot_tab = oasysgui.createTabPage(main_tabs, "Results") self.plot_tab.setFixedHeight(self.IMAGE_HEIGHT) self.plot_tab.setFixedWidth(self.IMAGE_WIDTH) self.plot_canvas = None gui.rubber(self.mainArea)
def __init__(self): super().__init__() self.runaction = widget.OWAction("Write HDF5 File", self) self.runaction.triggered.connect(self.write_file) self.addAction(self.runaction) self.setFixedWidth(590) self.setFixedHeight(500) left_box_1 = oasysgui.widgetBox(self.controlArea, "HDF5 File Selection", addSpace=True, orientation="vertical", width=570, height=400) 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_file_name = oasysgui.lineEdit(figure_box, self, "file_name", "Output File Name", labelWidth=120, valueType=str, orientation="horizontal") self.le_file_name.setFixedWidth(330) gui.button(figure_box, self, "...", callback=self.selectFile) gui.separator(left_box_1, height=10) # # # gui.comboBox( left_box_1, self, "TYPE_OF_OUTPUT", label=" Type of output file", labelWidth=260, items=[ 'COMSYL hdf5 with multi-mode', 'WOFRY hdf5 with multi-mode', 'WOFRY multiple files' ], #callback=self.set_Propagator, sendSelectedValue=False, orientation="horizontal") self.le_index_format = oasysgui.lineEdit( left_box_1, self, "index_format", "index format [for individual files]", labelWidth=200, valueType=str, orientation="horizontal") gui.separator(left_box_1, height=10) # # # gui.comboBox( left_box_1, self, "ALL_MODES", label=" Modes to write", labelWidth=260, items=['Selected modes', 'All modes'], #callback=self.set_Propagator, sendSelectedValue=False, orientation="horizontal") oasysgui.lineEdit(left_box_1, self, "MODE_TO", "To mode index:", labelWidth=200, valueType=int, orientation="horizontal") gui.separator(left_box_1, height=10) # # # button = gui.button(self.controlArea, self, "Write File", callback=self.write_file) button.setFixedHeight(45) self.le_index_format.setFixedWidth(330) gui.rubber(self.controlArea)