def __init__(self): graphical_Options=ow_optical_element.GraphicalOptions(is_grating=True) super().__init__(graphical_Options) gui.rubber(self.controlArea) gui.rubber(self.mainArea)
def __init__(self): graphical_Options = ow_optical_element.GraphicalOptions(is_empty=True) super().__init__(graphical_Options) self.file_to_write_out = 3 self.write_out_inc_ref_angles = 0 gui.rubber(self.controlArea) gui.rubber(self.mainArea)
def __init__(self): graphical_Options = ow_optical_element.GraphicalOptions(is_mirror=True) super().__init__(graphical_Options) tabs = gui.tabWidget( oasysgui.createTabPage(self.tabs_basic_setting, "Bender")) tab_bender = oasysgui.createTabPage(tabs, "Bender Setting") surface_box = oasysgui.widgetBox(tab_bender, "Surface Setting", addSpace=False, orientation="vertical") oasysgui.lineEdit(surface_box, self, "bender_bin_x", "bins Sagittal", labelWidth=260, valueType=int, orientation="horizontal") oasysgui.lineEdit(surface_box, self, "bender_bin_y", "bins Transversal", labelWidth=260, valueType=int, orientation="horizontal") material_box = oasysgui.widgetBox(tab_bender, "Bender Setting", addSpace=False, orientation="vertical") self.le_E = oasysgui.lineEdit(material_box, self, "E", "Young's Modulus ", labelWidth=260, valueType=float, orientation="horizontal") self.le_h = oasysgui.lineEdit(material_box, self, "h", "Thickness ", labelWidth=260, valueType=float, orientation="horizontal") gui.comboBox(material_box, self, "kind_of_bender", label="Kind Of Bender ", items=["Single Momentum", "Double Momentum"], labelWidth=150, orientation="horizontal", callback=self.set_kind_of_bender) gui.comboBox(material_box, self, "shape", label="Shape ", items=["Trapezium", "Rectangle"], labelWidth=150, orientation="horizontal", callback=self.set_shape) tab_fit = oasysgui.createTabPage(tabs, "Fit Setting") fit_box = oasysgui.widgetBox(tab_fit, "", addSpace=False, orientation="vertical") file_box = oasysgui.widgetBox(fit_box, "", addSpace=False, orientation="horizontal", height=25) self.le_output_file_name = oasysgui.lineEdit(file_box, self, "output_file_name", "Out File Name", labelWidth=100, valueType=str, orientation="horizontal") gui.button(file_box, self, "...", callback=self.select_output_file, width=20) length_box = oasysgui.widgetBox(fit_box, "", addSpace=False, orientation="horizontal") self.cb_optimized_length = gui.comboBox(length_box, self, "which_length", label="Optimized Length ", items=["Total", "Partial"], labelWidth=150, orientation="horizontal", callback=self.set_which_length) self.le_optimized_length = oasysgui.lineEdit(length_box, self, "optimized_length", " ", labelWidth=10, valueType=float, orientation="horizontal") self.set_which_length() gui.separator(fit_box) def add_parameter_box(container_box, variable, label): box = oasysgui.widgetBox(container_box, "", addSpace=False, orientation="horizontal") oasysgui.lineEdit(box, self, variable, label, labelWidth=50, valueType=float, orientation="horizontal") gui.label(box, self, " ", labelWidth=58) box = oasysgui.widgetBox(container_box, "", addSpace=False, orientation="horizontal") setattr( self, "le_" + variable + "_min", oasysgui.lineEdit(box, self, variable + "_min", "Min", labelWidth=50, valueType=float, orientation="horizontal")) setattr( self, "le_" + variable + "_max", oasysgui.lineEdit(box, self, variable + "_max", "Max", labelWidth=35, valueType=float, orientation="horizontal")) gui.checkBox(box, self, variable + "_fixed", "Fixed", callback=getattr(self, "set_" + variable)) box = oasysgui.widgetBox(container_box, "", addSpace=False, orientation="horizontal") le = oasysgui.lineEdit(box, self, variable + "_out", "Fitted", labelWidth=50, valueType=float, orientation="horizontal") le.setEnabled(False) le.setStyleSheet( "color: blue; background-color: rgb(254, 244, 205); font:bold") def set_variable_fit(): setattr(self, variable, getattr(self, variable + "_out")) gui.button(box, self, "<- Use", width=58, callback=set_variable_fit) getattr(self, "set_" + variable)() m1_box = oasysgui.widgetBox(fit_box, "", addSpace=False, orientation="vertical") gui.separator(fit_box, 10) self.ratio_box = oasysgui.widgetBox(fit_box, "", addSpace=False, orientation="vertical") gui.separator(fit_box, 10) self.e_box = oasysgui.widgetBox(fit_box, "", addSpace=False, orientation="vertical") gui.separator(fit_box, 10) add_parameter_box(m1_box, "M1", "M1") add_parameter_box(self.ratio_box, "ratio", "M1/M2") add_parameter_box(self.e_box, "e", "e") self.set_kind_of_bender() self.set_shape() ####################################################### plot_tab = oasysgui.createTabPage(self.main_tabs, "Bender Plots") view_box = oasysgui.widgetBox(plot_tab, "Plotting Style", addSpace=False, orientation="vertical", width=350) self.view_type_combo = gui.comboBox(view_box, self, "show_bender_plots", label="Show Plots", labelWidth=220, items=["No", "Yes"], sendSelectedValue=False, orientation="horizontal") bender_tabs = oasysgui.tabWidget(plot_tab) tabs = [ oasysgui.createTabPage(bender_tabs, "Bender vs. Ideal (1D)"), oasysgui.createTabPage(bender_tabs, "Ideal - Bender (1D)"), oasysgui.createTabPage(bender_tabs, "Ideal - Bender (3D)"), oasysgui.createTabPage(bender_tabs, "Figure Error (3D)"), oasysgui.createTabPage(bender_tabs, "Ideal - Bender + Figure Error (3D)") ] def create_figure_canvas(mode="3D"): figure = Figure(figsize=(100, 100)) figure.patch.set_facecolor('white') if mode == "3D": figure.add_subplot(111, projection='3d') else: figure.add_subplot(111) figure_canvas = FigureCanvasQTAgg(figure) figure_canvas.setFixedWidth(self.IMAGE_WIDTH) figure_canvas.setFixedHeight(self.IMAGE_HEIGHT - 10) return figure_canvas self.figure_canvas = [ create_figure_canvas("1D"), create_figure_canvas("1D"), create_figure_canvas(), create_figure_canvas(), create_figure_canvas() ] for tab, figure_canvas in zip(tabs, self.figure_canvas): tab.layout().addWidget(figure_canvas) gui.rubber(self.controlArea) gui.rubber(self.mainArea)