def start_app(): layout = [[ sg.Text('Enter the last four of your phone number', size=(75, 1), justification='center', font=("Helvetica", 18)) ], [ sg.Text('', size=(35, 1)), sg.InputText(font=("Helvetica", 18), justification='center', size=(30, 1), key='input_box') ], [ sg.Text('', size=(35, 1)), sg.ReadButton('Submit'), sg.Text('', size=(18, 1)), sg.ReadButton('Clear') ], [sg.Exit(key='Exit')]] window = sg.Window('Log In/Out', auto_size_buttons=False, return_keyboard_events=True).Layout(layout) while True: button, values = window.Read() if button == 'Exit' or values is None: break elif button == 'Clear': element = window.FindElement('input_box') element.Update('') elif button == 'Submit' or ord(str(button)) == 13: phone_number = values['input_box'] try: int(phone_number) if int(phone_number) > 9999: sg.Popup('Enter last four of your phone number.') elif len(phone_number) < 4: sg.Popup('Enter last four of your phone number.') else: failed = fetch_user(phone_number) if failed: sg.Popup('Invalid phone number.') element = window.FindElement('input_box') element.Update('') except: sg.Popup('Number values only.') element = window.FindElement('input_box') element.Update('')
'Pyplot Scatter With Legend': PyplotScatterWithLegend, 'Artist Customized Box Plots': PyplotArtistBoxPlots, 'Artist Customized Box Plots 2': ArtistBoxplot2, 'Pyplot Histogram': PyplotHistogram } sg.ChangeLookAndFeel('LightGreen') figure_w, figure_h = 650, 650 # define the form layout listbox_values = [key for key in fig_dict.keys()] col_listbox = [[ sg.Listbox(values=listbox_values, change_submits=True, size=(28, len(listbox_values)), key='func') ], [sg.T(' ' * 12), sg.Exit(size=(5, 2))]] layout = [ [sg.Text('Matplotlib Plot Test', font=('current 18'))], [ sg.Column(col_listbox, pad=(5, (3, 330))), sg.Canvas(size=(figure_w, figure_h), key='canvas'), sg.Multiline(size=(70, 35), pad=(5, (3, 90)), key='multiline') ], ] # create the form and show it without the plot window = sg.Window('Demo Application - Embedding Matplotlib In PySimpleGUI', grab_anywhere=False).Layout(layout) window.Finalize()
def main(): global g_interval, g_procs, g_exit # ---------------- Create Form ---------------- sg.ChangeLookAndFeel('Black') layout = [ [ sg.Text('', size=(8, 1), font=('Helvetica', 20), text_color=sg.YELLOWS[0], justification='center', key='text') ], [ sg.Text('', size=(30, 8), font=('Courier New', 12), text_color='white', justification='left', key='processes') ], [ sg.Exit(button_color=('white', 'firebrick4'), pad=((15, 0), 0)), sg.Spin([x + 1 for x in range(10)], 1, key='spin') ], ] window = sg.Window('CPU Utilization', no_titlebar=True, auto_size_buttons=False, keep_on_top=True, grab_anywhere=True).Layout(layout) # start cpu measurement thread thread = Thread(target=CPU_thread, args=(None, )) thread.start() # ---------------- main loop ---------------- while (True): # --------- Read and update window -------- button, values = window.ReadNonBlocking() # --------- Do Button Operations -------- if values is None or button == 'Exit': break try: g_interval = int(values['spin']) except: g_interval = 1 # cpu_percent = psutil.cpu_percent(interval=interval) # if don't wan to use a task cpu_percent = g_cpu_percent # let the GUI run ever 700ms regardless of CPU polling time. makes window be more responsive time.sleep(.7) display_string = '' if g_procs: # --------- Create list of top % CPU porocesses -------- try: top = {proc.name(): proc.cpu_percent() for proc in g_procs} except: pass top_sorted = sorted(top.items(), key=operator.itemgetter(1), reverse=True) if top_sorted: top_sorted.pop(0) display_string = '' for proc, cpu in top_sorted: display_string += '{:2.2f} {}\n'.format(cpu / 10, proc) # --------- Display timer in window -------- window.FindElement('text').Update('CPU {}'.format(cpu_percent)) window.FindElement('processes').Update(display_string) # Broke out of main loop. Close the window. window.CloseNonBlocking() g_exit = True thread.join()
], [ sg.Text('1- mkdir name :', pad=((3, 10), 10)), sg.Input() ], [ sg.Text('2- mkfile name :', pad=((3, 10), 10)), sg.Input() ], [ sg.Text("3- Search file :", pad=((3, 10), 20)), sg.Input() ], [sg.Submit(), sg.Exit()], [sg.Text("By Miss.Robot", pad=((3, 10), 20))]] window = sg.Window('File Manager', layout) while True: event, values = window.Read() if event == 'Exit': break elif values[0] != '' and values[5] != '': folder = values[0] name = values[5] os.system(('mkdir ' + (folder + "/" + name))) print(folder + "," + name) elif values[0] != '' and values[6] != '': folder = values[0] name = values[6]
import PySimpleGUI as sg import psutil # ---------------- Create Form ---------------- sg.ChangeLookAndFeel('Black') layout = [[sg.Text('')], [ sg.Text('', size=(8, 2), font=('Helvetica', 20), justification='center', key='text') ], [ sg.Exit(button_color=('white', 'firebrick4'), pad=((15, 0), 0)), sg.Spin([x + 1 for x in range(10)], 1, key='spin') ]] # Layout the rows of the form and perform a read. Indicate the form is non-blocking! window = sg.Window('CPU Meter', no_titlebar=True, auto_size_buttons=False, keep_on_top=True, grab_anywhere=True).Layout(layout) # ---------------- main loop ---------------- while (True): # --------- Read and update window -------- button, values = window.ReadNonBlocking() # --------- Do Button Operations --------
layout = [[sg.Text('')], [ sg.Text('', size=(8, 2), font=('Helvetica', 20), justification='center', key='text') ], [ sg.ReadButton('Pause', key='button', button_color=('white', '#001480')), sg.ReadButton('Reset', button_color=('white', '#007339'), key='Reset'), sg.Exit(button_color=('white', 'firebrick4'), key='Exit') ]] window = sg.Window('Running Timer', no_titlebar=True, auto_size_buttons=False, keep_on_top=True, grab_anywhere=True).Layout(layout) # ---------------- main loop ---------------- current_time = 0 paused = False start_time = int(round(time.time() * 100)) while (True): # --------- Read and update window -------- if not paused: