def upload_firmware(): """Upload firmware to device.""" global hexfile, selected_board, upload_process, progress_bar, popup, upload_timeout upload_timeout = False board = board_list[selected_board.get()] up = uploader.uploader.Uploader() up.configure_uploader(hexfile, board) popup = Tk() popup.wm_title("Uploading") progress_bar = Progressbar(popup, mode="indeterminate") progress_bar.pack() progress_bar.start() progress_bar.after(100, poller) upload_process = Process(target=up.upload_hex) upload_process.start() popup.mainloop() if upload_process.exitcode: popup_notification("Uploader error!", "Error!").destroy() if upload_timeout: popup_notification("Upload timed out", "Error!").destroy() popup.destroy()
class gui(): def __init__(self, tk_obj, num): self.num = num self.root = tk_obj self.button = tk.Button(master=self.root, text='count', command=self.call_count) self.button.pack(side='top') self.v1 = tk.IntVar() self.v1.set(1) if os.path.isfile('result1.pkl'): os.remove('result1.pkl') self.pbar = Progressbar(master=self.root, mode='indeterminate') #self.pbar.grid(row=1,column=1) self.pbar.pack(side='top') def call_count(self): # caller that starts a process and call a top level function self.v1.set(5) count_fn(self.num) self.p1 = Process(target=count_fn, args=(self.num, )) self.p1.start() self.pbar.start(1) self.pbar.after(1, self.onGetValue) def onGetValue(self): #if not os.path.isfile('result1.pkl'): if self.p1.is_alive(): self.pbar.after(1, self.onGetValue) return else: print('DONE') self.pbar.stop()
class Application: def __init__(self, master=None): self.fontePadrao = ("Arial", "12") self.primeiroContainer = Frame(master) self.primeiroContainer["pady"] = 20 self.primeiroContainer.pack() self.segundoContainer = Frame(master) self.segundoContainer["padx"] = 20 self.segundoContainer.pack() self.terceiroContainer = Frame(master) self.terceiroContainer["padx"] = 20 self.terceiroContainer.pack() self.quartoContainer = Frame(master) self.quartoContainer["pady"] = 20 self.quartoContainer.pack() self.quintoContainer = Frame(master) self.quintoContainer["pady"] = 20 self.quintoContainer.pack() self.sextoContainer = Frame(master) self.sextoContainer["pady"] = 20 self.sextoContainer.pack() self.titulo = Label(self.primeiroContainer, text="Gerador de código") self.titulo["font"] = ("Arial", "14", "bold") self.titulo.pack() self.barcode_type = Label(self.segundoContainer, text="Tipo barcode", font=self.fontePadrao) self.barcode_type.pack(side=LEFT) self.barcode_type = Entry(self.segundoContainer) self.barcode_type["width"] = 10 self.barcode_type["font"] = ("Calibri", "12") self.barcode_type.pack(side=LEFT) self.includetext = Label(self.segundoContainer, text="Incluir Texto", font=self.fontePadrao) self.includetext.pack(side=LEFT) self.includetext = Entry(self.segundoContainer) self.includetext["width"] = 10 self.includetext["font"] = ("Calibri", "12") self.includetext.pack(side=RIGHT) self.pathfileLabel = Label(self.terceiroContainer, text="Local (*csv)", font=self.fontePadrao) self.pathfileLabel.pack(side=LEFT) self.pathfile = Entry(self.terceiroContainer) self.pathfile["width"] = 50 self.pathfile["font"] = ("Calibri", "12") self.pathfile.pack(side=LEFT) self.search_path_file = Button(self.terceiroContainer) self.search_path_file["text"] = "Localizar Arquivo" self.search_path_file["width"] = 15 self.search_path_file["command"] = self.open_explore_file self.search_path_file["fg"] = "black" self.search_path_file.pack(side=RIGHT, padx=10, pady=10) self.pathsaveLabel = Label(self.quartoContainer, text="Local salvar", font=self.fontePadrao) self.pathsaveLabel.pack(side=LEFT) self.pathsave = Entry(self.quartoContainer) self.pathsave["width"] = 50 self.pathsave["font"] = ("Calibri", "12") self.pathsave.pack(side=LEFT) self.search_path_dir = Button(self.quartoContainer) self.search_path_dir["text"] = "Localizar diretorio" self.search_path_dir["width"] = 15 self.search_path_dir["command"] = self.open_explore_dir self.search_path_dir.pack(side=RIGHT, padx=10, pady=10) self.generator = Button(self.quintoContainer) self.generator["text"] = "Executar" self.generator["font"] = ("Calibri", "12") self.generator["fg"] = "white" self.generator["width"] = 20 self.generator["bg"] = "blue" self.generator["command"] = self.create_code self.generator.pack() # self.mensagem = Label(self.sextoContainer, text="") # self.mensagem["font"] = ("Calibri", "12", "italic") # self.mensagem.pack() self.progress = Progressbar(self.sextoContainer, orient="horizontal", maximum=100, mode="determinate") def open_explore_file(self): filename = askopenfilename() self.pathfile.delete(0, END) self.pathfile.insert(0, filename) def open_explore_dir(self): directory = askdirectory() self.pathsave.delete(0, END) self.pathsave.insert(0, directory) def progress_bar(self, current_value, count_lines): percent = (current_value * 100) / count_lines self.progress["value"] = percent self.progress.update() def count_lines(self, file): return sum(1 for row in open(file)) - 1 def check_file(self, local_save, diretorio): full_path = f'{local_save}/{diretorio}' if not os.path.exists(full_path): return False return True def create_code(self): self.progress.pack(side=TOP, ipadx=100) file = self.pathfile.get() local_save = self.pathsave.get() code = self.barcode_type.get() text = True if self.includetext.get() == 'S' or self.includetext.get( ) == 's' else False count_lines = self.count_lines(file) current_value = 1 try: with open(file, 'r', encoding='utf-8') as kit: file = csv.reader(kit, delimiter=';', quotechar=';') next(file) for row in file: dir_exist = self.check_file(local_save, row[2]) if not dir_exist: os.mkdir(f'{local_save}/{row[2]}') image = treepoem.generate_barcode( barcode_type=code, data=row[0], options={"includetext": text}) image.convert('1').save( f'{local_save}/{row[2]}/{row[1]}.png') current_value += 1 self.progress.after( 1000, self.progress_bar(current_value=current_value, count_lines=count_lines)) kit.close() messagebox.showinfo("Sucesso", "Códigos gerados!") root.quit() except Exception as e: messagebox.showerror("Erro", str(e))
email_file = Path(data_list.email_path) if email_file.is_file(): pass else: with open(data_list.email_path, "w+") as email_fil: email_fil.write("") email_fil.close() root = Tk() sp = SplashScreen(root) root.after(3000, root.destroy) root.minsize(650, 250) style = Style() style.theme_use("clam") image = data_list.welcome_image root.wm_attributes('-type', 'splash') img = PhotoImage(data=image) label = Label(root, image=img) label.pack() progress = Progressbar(root, maximum=100, orient="horizontal", length=660, mode="indeterminate") progress.pack(side=BOTTOM) progress.start(27) progress.after(2800, progress.destroy) root.mainloop()