def MicroBreak(): # TODO: If pause is pressed, don't show microbreaks # layout the Window layout = [[sg.Text('A MicroBreak')], [sg.ProgressBar(5, orientation='h', size=(20, 20), key='progbar')]] # create the Window window = sg.Window('Custom Progress Meter', layout) start = time.time() elapsed = 0 while elapsed < 5: event, values = window.Read(timeout=0) if event == 'Cancel' or event is None: break end = time.time() elapsed = end - start window.Element('progbar').UpdateBar(elapsed) window.Close()
[ sg.Frame('Список банков', [[ sg.Listbox(values=[], select_mode=sg.LISTBOX_SELECT_MODE_MULTIPLE, key='-LISTBOX-') ]] ) ], [sg.Button('Взять данные'), sg.Text(' ' * 79), sg.Button('Удалить')], [ sg.Frame('Cохранение', [[ sg.FolderBrowse('Выберете папку', target='-PATH-'), sg.InputText(f'{dirname(__file__)}', key='-PATH-'), sg.Button('Сохранить') ]] ) ], [sg.ProgressBar(1000, orientation='h', key='progressbar')] ] win1 = sg.Window('101 форма', layout1) win2_active = False banks_data, banks_name = {}, {} dates = [] while True: try: ev1, val1 = win1.read(timeout=100) if ev1 in (None, 'Exit'): break elif ev1 == 'Взять данные': dates = [] banks_data, banks_name = {}, {} t_smonth = temp_smonth
def main(): sg.ChangeLookAndFeel('GreenTan') # sg.SetOptions(element_padding=(0,0)) # ------ Menu Definition ------ # menu_def = [ ['&File', ['&Open', '&Save', '&Properties', 'E&xit']], [ '&Edit', ['&Paste', [ 'Special', 'Normal', ], 'Undo'], ], ['&Toolbar', ['Command &1', 'Command &2', 'Command &3', 'Command &4']], ['&Help', '&About...'], ] treedata = sg.TreeData() treedata.Insert( "", '_A_', 'Tree Item 1', [1, 2, 3], ) treedata.Insert( "", '_B_', 'B', [4, 5, 6], ) treedata.Insert( "_A_", '_A1_', 'Sub Item 1', ['can', 'be', 'anything'], ) treedata.Insert( "", '_C_', 'C', [], ) treedata.Insert( "_C_", '_C1_', 'C1', ['or'], ) treedata.Insert("_A_", '_A2_', 'Sub Item 2', [None, None]) treedata.Insert("_A1_", '_A3_', 'A30', ['getting deep']) treedata.Insert("_C_", '_C2_', 'C2', ['nothing', 'at', 'all']) for i in range(100): treedata.Insert('_C_', i, i, []) frame1 = [ [sg.Input('Input Text', size=(250, 35)), sg.Stretch()], [ sg.Multiline(size=(250, 75), default_text='Multiline Input'), sg.MultilineOutput(size=(250, 75), default_text='Multiline Output') ], ] frame2 = [ [sg.Listbox(['Listbox 1', 'Listbox 2', 'Listbox 3'], size=(200, 85))], [ sg.Combo(['Combo item 1', 'Combo item 2', 'Combo item 3'], size=(200, 35)) ], [sg.Spin([1, 2, 3], size=(40, 30))], ] frame3 = [ [sg.Checkbox('Checkbox1', True), sg.Checkbox('Checkbox1')], [ sg.Radio('Radio Button1', 1), sg.Radio('Radio Button2', 1, default=True), sg.Stretch() ], ] frame4 = [ [ sg.Slider(range=(0, 100), orientation='v', size=(3, 30), default_value=40), sg.Dial(range=(0, 100), tick_interval=50, size=(150, 150), default_value=40), sg.Stretch() ], ] matrix = [[str(x * y) for x in range(4)] for y in range(3)] frame5 = [ [ sg.Table(values=matrix, max_col_width=25, auto_size_columns=True, display_row_numbers=True, change_submits=False, bind_return_key=True, justification='right', num_rows=8, alternating_row_color='lightblue', key='_table_', text_color='black'), sg.Tree(data=treedata, headings=['col1', 'col2', 'col3'], change_submits=True, auto_size_columns=True, num_rows=10, col0_width=10, key='_TREE_', show_expanded=True, size=(200, 150)), sg.Stretch() ], ] graph_elem = sg.Graph((880, 150), (0, 0), (600, 300), key='+GRAPH+') frame6 = [ [graph_elem, sg.Stretch()], ] tab1 = sg.Tab('Graph Number 1', frame6) tab2 = sg.Tab('Graph Number 2', [[]]) layout = [ [sg.Menu(menu_def)], [ sg.Image(data_base64=logo), sg.Frame('Input Text Group', frame1, title_color='red'), sg.Stretch() ], [ sg.Frame('Multiple Choice Group', frame2, title_color='green'), sg.Frame('Binary Choice Group', frame3, title_color='purple'), sg.Frame('Variable Choice Group', frame4, title_color='blue'), sg.Stretch() ], [ sg.Frame('Structured Data Group', frame5, title_color='red'), ], # [sg.Frame('Graphing Group', frame6)], [sg.TabGroup([[tab1, tab2]])], [ sg.ProgressBar(max_value=600, start_value=400, size=(600, 25), key='+PROGRESS+'), sg.Stretch(), sg.ButtonMenu('&Menu', ['Menu', ['&Pause Graph', 'Menu item']], key='_MENU_'), sg.Button('Button'), sg.Button('Exit') ], ] window = sg.Window('Window Title', font=('Helvetica', 13), default_button_element_size=(100, 30), auto_size_buttons=False, default_element_size=(200, 22)).Layout(layout).Finalize() graph_elem.DrawCircle((200, 200), 50, 'blue') i = 0 graph_paused = False while True: # Event Loop # sg.TimerStart() event, values = window.Read(timeout=0) if event is None or event == 'Exit': break if event == 'Button': print(event, values) if values['_MENU_'] == 'Pause Graph': graph_paused = not graph_paused if not graph_paused: i += 1 if i >= 600: graph_elem.Move(-1, 0) graph_elem.DrawLine((i, 0), (i, randint(0, 300)), width=1, color='#{:06x}'.format(randint(0, 0xffffff))) window.FindElement('+PROGRESS+').UpdateBar(i % 600) # sg.TimerStop() window.Close()
def main(): # set program theme theme_name = 'DarkPurple4' sg.theme(theme_name) os.system('color') # define default values for UI default_size_text = (30, 1) default_size_input = (50, 1) default_size_input_with_button = ((30, 1), (15, 1)) # define file handeling modes for song duplicates dupli_mode = { 'radio_move': 'Move when in other list', 'radio_copy': 'Copy when in other list', 'radio_download': 'Download again' } # create progress bars and their labels progresses = [(sg.Text(f'ProgBar {key}: None', key=f'-{key}_text', visible=False), sg.ProgressBar(100, key=f'-{key}_progressbar', visible=False)) for key in range(1, 51)] # make layout layout = [[ sg.Text('Username: '******'', key='username_input', enable_events=True), sg.Button('Check', key='username_button') ], [ sg.Text('Anime Music Dir: '), sg.Input(ml.library_dir, key='dir_input', disabled=True, enable_events=True), sg.FolderBrowse(initial_folder=ml.get_default_dir(), key='dir_browse') ], [ sg.Radio(dupli_mode[key], group_id='dupli', key=key, enable_events=True) for i, key in enumerate(dupli_mode) ], [ sg.Text('Thread count: '), sg.Combo(list(range(1, 51)), default_value=1, key='thread_count_combo', enable_events=True) ], [ sg.Column(progresses, scrollable=True, key='progresses_column', size=(700, 200)) ], [sg.Button('Download', key='download_button')], [sg.Button('', visible=False, key='--PROGRESS_UPDATE--')]] to_disable = [ 'download_button', 'username_input', 'username_button', 'dir_input', 'dir_browse', 'radio_move', 'radio_copy', 'radio_download' ] # make window window = sg.Window("MalMuzic", layout, finalize=True, resizable=False) # for x in range(50): # progresses[x][1].UpdateBar(50) # set default values to UI layout[2][0].update(value=True) # set more variables input_default_color = sg.LOOK_AND_FEEL_TABLE[theme_name]['INPUT'] run_thread_running = False run_thread: Tuple[Event, Thread] = None # type: ignore to_close = False # helper function for main def check_username(): print(f'[I] Looking for mal user "{values["username_input"]}"') exists = mm.user_exists(values["username_input"]) print('[I] Username exists' if exists else '[I] Username doesn\'t exists') if not exists: window['username_input'].update(background_color='#FF7777') else: window['username_input'].update( background_color=input_default_color) return exists def get_dupli_mode(): for i, key in enumerate(dupli_mode): if window[key].get(): return i # UI loop while not to_close: event, values = window.read() # type: ignore if event == sg.WIN_CLOSED or event is None: to_close = True if run_thread is not None: run_thread[0].set() continue # print('[I]', event, values[event] if event in values else '') if event == 'username_button': check_username() if event == 'download_button': if not run_thread_running: print('[I] Checking username') if not check_username(): continue ml.library_dir = values['dir_input'] window['download_button']( text=window['download_button'].ButtonText + ' Disabled') for dis in to_disable: window[dis](disabled=True) run_thread = run(window, values["username_input"], progresses, window['progresses_column'], dir=ml.library_dir, thread_count=values['thread_count_combo']) else: cprint('[E] Download already running', 'red') if event == 'thread_count_combo': print(f'[I] User choose {values[event]} threads to run async') if event in dupli_mode: print(f'[I] User choose: "{dupli_mode[event]}"') if event == '--PROGRESS_UPDATE--': # progresses[values[event][0]][1].UpdateBar(values[event][2]) for i in range(len(st.threads)): if st.threads[i] is not None: if hasattr(st.threads[i][1], 'percent'): progresses[i][1].UpdateBar(st.threads[i][1].percent) progresses[i][0].update( value=st.threads[i][1].request + ': ' + str(st.threads[i][1].total_kb) + 'kB, ' + str(round(st.threads[i][1].rate, 1)) + 'kB/s') if run_thread is not None: print('[I] Download thread still running, joining with it.') run_thread[1].join() window.close() print('[!] Exiting program')
[ sg.T("MENSAGENS:", size=(14, 1), tooltip='Mensagens provindas do processo executado.'), sg.Stretch(), sg.B("MODO DE USAR", key='usar', tooltip='Descrição do preenchimento de cada campo.', size=(15, 1)) ], [sg.Output(key='out')], [ sg.B("LIMPAR", key='limpar', size=(10, 1), tooltip="Limpa o texto da caixa de mensagens."), sg.ProgressBar(max_value=100, key="prog", orientation="h") ] ] window = sg.Window("COPIADOR DE ARQUIVOS", size=(800, 480)).Layout(layout) def func(): files = glob(PASTA_PA + "\\**\\*.{0}".format(EXT), recursive=True) print("Iniciando cópia...\n") window.Refresh() totalfiles = len(files) nfiles = 0 copiados = 0 erros = 0 for f in files:
layout = [ [sg.Text('Select folder to process:', size=(22, 1)), sg.InputText("", key='source'), sg.FolderBrowse(size=(9, 1))], [sg.Text('Save files to:', size=(25, 1)), sg.InputText("", key='destination'), sg.FolderBrowse(size=(9, 1))], [sg.Text('Choose processor:', size=(20, 1))], [sg.Radio("Convert to plaintext (supports .docx, .html, .pdf, .pptx, .rtf)", "Processors", key='convertToPlaintext', default=True)], [sg.Radio("Encode in UTF-8 (expects .txt files)", "Processors", key='encodeUtf8', default=False)], [sg.Radio("Standardize non-ASCII characters and remove non-English characters (expects UTF-8 encoded input)", "Processors", key='standardizeCharacters', default=False)], [sg.Radio("Remove PDF metadata (i.e., authoring information). Expects .pdf files.", "Processors", key='removeMetadata', default=False)], [sg.Button("Process files", size=(20, 1)), sg.Exit(size=(6, 1))], [sg.ProgressBar(max_value=10, orientation='h', size=(80, 20), key='progress')], [sg.Text('', size=(80, 1), key='result_text')], [sg.Text('', size=(80, 1), key='progress_text')], ] window = sg.Window('Corpus Text Processor', keep_on_top=False, font=("Helvetica", 14), default_element_size=(50, 1)).Layout(layout) progress_bar = window['progress'] progress_text = window['progress_text'] result_text = window['result_text'] def process_recursive(values): source = values['source'] destination = values['destination'] resultList = [] supported_filetypes = ['.docx', '.pdf', '.html', '.pptx', '.txt', '.rtf', '.doc']
background_color="transparent", margins=(10, 50, 0, 0)), sg.Column(controls), sg.Column(sound, size=(20, 1)) ], [ sg.Text("0:00", key="-start-", font=font, justification="c", background_color="transparent", size_px=(50, 15), margins=(15, 0, 0, 0)), sg.ProgressBar(100, size_px=(370, 5), bar_color=("#535353", "#b3b3b3"), start_value=0, key="progress"), sg.Text("0:00", key="-end-", font=font, justification="c", background_color="transparent", size_px=(40, 15)) ]] overlayW = sg.Window("", overlay, keep_on_top=True, no_titlebar=True, size=size,
left_menu = sg.Column([ [sg.Button('Home')], [sg.Button('Foo')], [sg.Button('Help')], ]) graph_col = [[sg.Graph((100, 100), (0, 0), (1, 1))], [sg.Graph((100, 100), (0, 0), (1, 1))]] main_col = [[ sg.MultilineOutput( 'This is some text so see how the font looks that I am using.') ]] main_pane = sg.Column([ [sg.Text('Progress'), sg.ProgressBar(100)], [sg.Col(graph_col), sg.Col(main_col)], # [sg.MultilineOutput()] ]) #layout = [[left_menu, main_pane]] layout = [[main_pane]] window = sg.Window('ml4all', layout, font='Helvetica 14', element_padding=(5, 5)) # Calibre Roboto Helvetica, Verdana while True: event, values = window.read()
key="startButton") ], [ sg.Button( " Start Converting ", tooltip= "This will convert the images to text, it may take a minute depending on PC speed and number of decos", key="convertButton"), sg.Button( " Export (fix errors first!) ", tooltip="FIX ANY ERRORS BEFORE PRESSING THIS OR IT WONT WORK!!!!!", key="exportButton") ], [ sg.Text("Progress:"), sg.ProgressBar(100, orientation="h", key="bar"), sg.Text("0/X", key="bartext") ], [sg.Output()], [sg.Button("Exit")] ] window = sg.Window("MHW Deco Exporter", location=(800, 400)) window.Layout(layout).Finalize() # the region caprture method, isnt used if defaultregion() is used instead def capture(): global x1, y1, drawing, num, img, img2, x2, y2 x1, y1, x2, y2 = 0, 0, 0, 0
sg.Input("./data/chap28", key="folderPath", size=(50, 0.5)), sg.FolderBrowse(initial_folder=".", key="browseFolder", target="folderPath"), sg.Button("Analyze", key="analyze"), ], [ sg.Text('Capture frequency (s): '), sg.Input(5, key="delayTime", size=(3, 1), justification='center'), sg.Button("Record", key="recordBtn"), sg.Text('Current capture index:'), sg.Text("0", key="imgIdx"), ], [ sg.Text('Analyze progress', key='progressText'), sg.ProgressBar(100, key="progressbar", size=(5, 1)) ], ] window = sg.Window("pySlideCap", use_native_style=True, layout=layout, element_padding=(10, 10)) record = False imgIdx = 0 startTime = 0 imageBuffer = BytesIO() timeout = None