def workbook_from_inp(ws, my_row, filename, title=""): lines = [] lines = inp_load_file(filename) if lines == False: return my_row if title != "": ws.cell(column=1, row=my_row, value=title) my_row = my_row + 1 pos = 0 my_token_lib = tokens() while (1): ret, pos = inp_get_next_token_array(lines, pos) token = ret[0] if token == "#ver": break if token == "#end": break if token.startswith("#"): show = False units = "Units" value = ret[1] result = my_token_lib.find(token) if result != False: units = result.units text_info = result.info show = True if show == True and is_number(value): ws.cell(column=1, row=my_row, value=text_info) ws.cell(column=2, row=my_row, value=float(value)) my_row = my_row + 1 return my_row
def load(self): self.clean_menu() self.last_page=0 #print "paths",os.getcwd(),get_bin_path(),(os.path.normcase(os.getcwd())!=os.path.normcase(get_bin_path())) if (os.path.exists("sim.opvdm")==True) and (os.path.normcase(os.getcwd())!=os.path.normcase(get_bin_path())): self.finished_loading=False self.progress.init() self.progress.show() self.progress.start() self.progress.set_text("Loading..") process_events() for child in self.get_children(): self.remove(child) dos_files=inp_get_token_value("device_epitaxy.inp", "#layers") self.main_tab=tab_main() self.main_tab.init() self.main_tab.show() self.append_page(self.main_tab, gtk.Label(_("Device structure"))) lines=[] pos=0 if inp_load_file(lines,"gui_config.inp")==True: pos=0 tab_number=0 tabs=(len(lines)-3)/2 print "tabs=",tabs while (1): add_to_widget=False ret,pos=inp_get_next_token_array(lines,pos) if ret[0]=="#ver": break file_name=ret[0] if file_name[0]=="#": file_name=file_name[1:] name=inp_file_to_description(file_name) if name==False: print "name not found",name break visible=bool(int(ret[1])) self.progress.set_fraction(float(tab_number)/float(tabs)) tab_number=tab_number+1 self.progress.set_text(_("Loading ")+name) process_events() if file_name=="pl0.inp": tab=pl_main() tab.init() tab.update() add_to_widget=True tab.visible=visible tab.label_name=name tab.file_name=file_name elif file_name=="epitaxy.inp": tab=dos_main() tab.init() tab.update() add_to_widget=True tab.visible=visible tab.label_name=name tab.file_name=file_name elif file_name=="lumo0.inp": tab=tab_bands() tab.update() if tab.enabled==True: add_to_widget=True tab.visible=visible tab.wow() tab.label_name=name tab.file_name=file_name elif inp_isfile(file_name)==True: add_to_widget=True tab=tab_class() tab.visible=visible tab.init(file_name,name) tab.label_name=name tab.file_name=file_name if add_to_widget==True: #print file_name,name,visible,type(tab) hbox=gtk.HBox() hbox.set_size_request(-1, 25) mytext=name if len(mytext)<10: for i in range(len(mytext),10): mytext=mytext+" " label=gtk.Label(mytext) label.set_justify(gtk.JUSTIFY_LEFT) self.connect("switch-page", self.callback_switch_page) hbox.pack_start(label, False, True, 0) button = gtk.Button() close_image = gtk.Image() close_image.set_from_file(os.path.join(get_image_file_path(),"close.png")) print os.path.join(get_image_file_path(),"close.png") close_image.show() button = gtk.Button() button.add(close_image) button.props.relief = gtk.RELIEF_NONE button.connect("clicked", self.callback_close_button,name) button.set_size_request(25, 25) button.show() hbox.pack_end(button, False, False, 0) hbox.show_all() if (visible==True): tab.show() self.append_page(tab,hbox) self.set_tab_reorderable(tab,True) self.add_to_menu(name,visible) else: print _("No gui_config.inp file found\n") #for child in self.get_children(): # print type(child) if self.terminal_widget!=None: self.terminal_widget.show() self.append_page(self.terminal_widget, gtk.Label(_("Terminal"))) self.add_welcome_page() self.finished_loading=True self.progress.stop() self.progress.set_fraction(0.0) self.goto_page("tab_main") self.set_tab_pos(gtk.POS_TOP) #self.set_current_page(1) return True else: self.add_welcome_page() self.goto_page(_("Welcome")) return False
def init(self, filename, tab_name): self.scroll = QScrollArea() self.main_box_widget = QWidget() self.vbox = QVBoxLayout() self.hbox = QHBoxLayout() self.hbox.setAlignment(Qt.AlignTop) self.file_name = filename self.tab_name = tab_name self.tab = QGridLayout() widget = QWidget() widget.setLayout(self.tab) self.vbox.addWidget(widget) scan_remove_file(filename) self.edit_list = [] self.lines = inp_load_file(filename) if self.lines == False: error_dlg(self, _("File not found.") + " " + filename) return n = 0 pos = 0 my_token_lib = tokens() widget_number = 0 while (1): ret, pos = inp_get_next_token_array(self.lines, pos) token = ret[0] if token == "#ver": break if token == "#end": break if token.startswith("#"): show = False units = "Units" value = ret[1] result = my_token_lib.find(token) if result != False: units = result.units text_info = result.info show = True #self.set_size_request(600,-1) if show == True: description = QLabel_click() description.setText(latex_to_html(text_info)) if os.path.isfile( os.path.splitext(filename)[0] + "_" + token[1:] + ".ref"): description.setStyleSheet('color: green') description.clicked.connect( functools.partial(self.callback_ref, filename, token, description)) if result.widget == "gtkswitch": edit_box = gtkswitch() edit_box.setFixedSize(300, 25) edit_box.set_value(str2bool(value)) edit_box.changed.connect( functools.partial(self.callback_edit, filename, token, edit_box)) elif result.widget == "leftright": edit_box = leftright() edit_box.setFixedSize(300, 25) edit_box.set_value(str2bool(value)) edit_box.changed.connect( functools.partial(self.callback_edit, filename, token, edit_box)) elif result.widget == "gpvdm_select": edit_box = gpvdm_select(file_box=True) edit_box.setFixedSize(300, 25) edit_box.setText(value) edit_box.edit.textChanged.connect( functools.partial(self.callback_edit, filename, token, edit_box)) elif result.widget == "QLineEdit": edit_box = QLineEdit() edit_box.setFixedSize(300, 25) if self.editable == False: edit_box.setReadOnly(True) edit_box.setText(value) #edit_box.set_text(self.lines[pos]); edit_box.textChanged.connect( functools.partial(self.callback_edit, filename, token, edit_box)) #edit_box.show() elif result.widget == "QColorPicker": r = float(ret[1]) g = float(ret[2]) b = float(ret[3]) edit_box = QColorPicker(r, g, b) edit_box.setFixedSize(300, 25) edit_box.changed.connect( functools.partial(self.callback_edit, filename, token, edit_box)) elif result.widget == "QComboBoxLang": edit_box = QComboBoxLang() edit_box.setFixedSize(300, 25) for i in range(0, len(result.defaults)): edit_box.addItemLang(result.defaults[i][0], result.defaults[i][1]) edit_box.setValue_using_english(value) edit_box.currentIndexChanged.connect( functools.partial(self.callback_edit, filename, token, edit_box)) elif result.widget == "QParasitic": edit_box = QParasitic() edit_box.setFixedSize(300, 25) edit_box.setValue(value) edit_box.textChanged.connect( functools.partial(self.callback_edit, filename, token, edit_box)) elif result.widget == "QChangeLog": edit_box = QChangeLog() edit_box.setMinimumHeight(100) if self.editable == False: edit_box.setReadOnly(True) edit_box.setText(value) edit_box.textChanged.connect( functools.partial(self.callback_edit, filename, token, edit_box)) else: edit_box = QComboBox() edit_box.setFixedSize(300, 25) for i in range(0, len(result.defaults)): edit_box.addItem(result.defaults[i]) all_items = [ edit_box.itemText(i) for i in range(edit_box.count()) ] for i in range(0, len(all_items)): if all_items[i] == value: edit_box.setCurrentIndex(i) break edit_box.currentIndexChanged.connect( functools.partial(self.callback_edit, filename, token, edit_box)) unit = QLabel() unit.setText(latex_to_html(units)) self.tab.addWidget(description, widget_number, 0) self.tab.addWidget(edit_box, widget_number, 1) self.tab.addWidget(unit, widget_number, 2) scan_item_add(filename, token, text_info, 1) widget_number = widget_number + 1 spacer = QWidget() spacer.setSizePolicy(QSizePolicy.Expanding, QSizePolicy.Expanding) self.vbox.addWidget(spacer) self.main_box_widget.setLayout(self.vbox) self.scroll.setWidget(self.main_box_widget) self.icon_widget = QWidget() self.icon_widget_vbox = QVBoxLayout() self.icon_widget.setLayout(self.icon_widget_vbox) if self.icon_file != "": self.image = QLabel() icon = QIcon_load(self.icon_file) self.image.setPixmap(icon.pixmap(icon.actualSize(QSize(32, 32)))) self.icon_widget_vbox.addWidget(self.image) spacer2 = QWidget() spacer2.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Expanding) self.icon_widget_vbox.addWidget(spacer2) self.hbox.addWidget(self.icon_widget) self.hbox.addWidget(self.scroll) self.setLayout(self.hbox)
def load(self): self.clean_menu() self.last_page=0 #self.setTabsClosable(True) self.setMovable(True) if (os.path.exists("sim.gpvdm")==True) and (os.path.normcase(os.getcwd())!=os.path.normcase(get_bin_path())): self.finished_loading=False #self.progress.init() #self.progress.show() #self.progress.start() #self.progress.set_text("Loading..") #process_events() self.clear() # dos_files=inp_get_token_value("device_epitaxy.inp", "#layers") widget=tab_main() self.addTab(widget,_("Device structure")) lines=[] pos=0 if inp_load_file(lines,"gui_config.inp")==True: pos=0 tab_number=0 tabs=(len(lines)-3)/2 while (1): add_to_widget=False ret,pos=inp_get_next_token_array(lines,pos) if ret[0]=="#ver": break file_name=ret[0] if file_name[0]=="#": file_name=file_name[1:] name=inp_file_to_description(file_name) if name==False: print("name not found",name) break visible=bool(int(ret[1])) #self.progress.set_fraction(float(tab_number)/float(tabs)) tab_number=tab_number+1 #self.progress.set_text(_("Loading ")+name) #process_events() if file_name=="lumo0.inp": widget=tab_bands() #tab.update() add_to_widget=True widget.visible=visible widget.label_name=name widget.file_name=file_name elif file_name=="epitaxy.inp": widget=dos_main() widget.update() add_to_widget=True widget.visible=visible widget.label_name=name widget.file_name=file_name elif file_name=="pl0.inp": widget=pl_main() widget.update() add_to_widget=True widget.visible=visible widget.label_name=name widget.file_name=file_name elif inp_isfile(file_name)==True: add_to_widget=True widget=tab_class() widget.init(file_name,name) # add_to_widget=True # tab= # tab.visible=visible # tab.init(file_name,name) # tab.label_name=name # tab.file_name=file_name if add_to_widget==True: mytext=name if len(mytext)<10: for i in range(len(mytext),10): mytext=mytext+" " self.addTab(widget,mytext) self.terminal=tab_terminal() self.terminal.init() self.addTab(self.terminal,"Terminal") self.terminal.run(os.getcwd(),get_exe_command()+" --version --html") self.add_info_page() return True self.finished_loading=True #self.progress.stop() #self.progress.set_fraction(0.0) self.goto_page("tab_main") else: self.add_info_page() self.goto_page(_("Information")) return False