Moved all demo programs into subfolder
This commit is contained in:
parent
a294d0a347
commit
1881bd7126
107 changed files with 51 additions and 144 deletions
79
DemoPrograms/Demo_Desktop_Widget_CPU_Graph.py
Normal file
79
DemoPrograms/Demo_Desktop_Widget_CPU_Graph.py
Normal file
|
@ -0,0 +1,79 @@
|
|||
#!/usr/bin/env python
|
||||
import sys
|
||||
import sys
|
||||
if sys.version_info[0] >= 3:
|
||||
import PySimpleGUI as sg
|
||||
else:
|
||||
import PySimpleGUI27 as sg
|
||||
import time
|
||||
import random
|
||||
import psutil
|
||||
from threading import Thread
|
||||
|
||||
|
||||
STEP_SIZE=3
|
||||
SAMPLES = 300
|
||||
SAMPLE_MAX = 500
|
||||
CANVAS_SIZE = (300,200)
|
||||
|
||||
|
||||
g_interval = .25
|
||||
g_cpu_percent = 0
|
||||
g_procs = None
|
||||
g_exit = False
|
||||
|
||||
def CPU_thread(args):
|
||||
global g_interval, g_cpu_percent, g_procs, g_exit
|
||||
|
||||
while not g_exit:
|
||||
try:
|
||||
g_cpu_percent = psutil.cpu_percent(interval=g_interval)
|
||||
g_procs = psutil.process_iter()
|
||||
except:
|
||||
pass
|
||||
|
||||
def main():
|
||||
global g_exit, g_response_time
|
||||
# start ping measurement thread
|
||||
|
||||
sg.ChangeLookAndFeel('Black')
|
||||
sg.SetOptions(element_padding=(0,0))
|
||||
|
||||
layout = [ [sg.Quit( button_color=('white','black')), sg.T('', pad=((100,0),0), font='Any 15', key='output')],
|
||||
[sg.Graph(CANVAS_SIZE, (0,0), (SAMPLES,SAMPLE_MAX),background_color='black', key='graph')],]
|
||||
|
||||
window = sg.Window('CPU Graph', grab_anywhere=True, keep_on_top=True, background_color='black', no_titlebar=True, use_default_focus=False).Layout(layout)
|
||||
|
||||
graph = window.FindElement('graph')
|
||||
output = window.FindElement('output')
|
||||
# start cpu measurement thread
|
||||
thread = Thread(target=CPU_thread,args=(None,))
|
||||
thread.start()
|
||||
|
||||
last_cpu = i = 0
|
||||
prev_x, prev_y = 0, 0
|
||||
while True: # the Event Loop
|
||||
time.sleep(.5)
|
||||
event, values = window.Read(timeout=0)
|
||||
if event == 'Quit' or event is None: # always give ths user a way out
|
||||
break
|
||||
# do CPU measurement and graph it
|
||||
current_cpu = int(g_cpu_percent*10)
|
||||
if current_cpu == last_cpu:
|
||||
continue
|
||||
output.Update(current_cpu/10) # show current cpu usage at top
|
||||
if current_cpu > SAMPLE_MAX:
|
||||
current_cpu = SAMPLE_MAX
|
||||
new_x, new_y = i, current_cpu
|
||||
if i >= SAMPLES:
|
||||
graph.Move(-STEP_SIZE,0) # shift graph over if full of data
|
||||
prev_x = prev_x - STEP_SIZE
|
||||
graph.DrawLine((prev_x, prev_y), (new_x, new_y), color='white')
|
||||
prev_x, prev_y = new_x, new_y
|
||||
i += STEP_SIZE if i < SAMPLES else 0
|
||||
last_cpu = current_cpu
|
||||
|
||||
g_exit = True
|
||||
window.Close()
|
||||
if __name__ == '__main__':
|
||||
main()
|
Loading…
Add table
Add a link
Reference in a new issue