#!/usr/bin/env python import PySimpleGUI as sg import psutil # Yet another usage of CPU data # ---------------- Create Form ---------------- sg.theme('Black') layout = [[sg.Text('CPU Utilization')], [sg.Text('', size=(8, 2), font=('Helvetica', 20), justification='center', key='-text-')], [sg.Exit(button_color=('white', 'firebrick4'), pad=((15, 0), 0), size=(9, 1)), sg.Spin([x + 1 for x in range(10)], 3, key='-spin-')]] # Layout the rows of the Window window = sg.Window('CPU Meter', layout, no_titlebar=True, keep_on_top=True, grab_anywhere=True, finalize=True) # ---------------- main loop ---------------- interval = 10 # For the first one, make it quick while True: # --------- Read and update window -------- event, values = window.read(timeout=interval) # --------- Do Button Operations -------- if event in (None, 'Exit'): break interval = int(values['-spin-'])*1000 cpu_percent = psutil.cpu_percent(interval=1) # --------- Display timer in window -------- window['-text-'].update(f'CPU {cpu_percent:02.0f}%') # Broke out of main loop. Close the window. window.CloseNonBlocking()