Skip to content

Commit

Permalink
New demos for imwatchingyou
Browse files Browse the repository at this point in the history
  • Loading branch information
MikeTheWatchGuy committed Jun 2, 2019
1 parent ec8a752 commit 3908018
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 36 deletions.
36 changes: 20 additions & 16 deletions example_imwatching_you_use.py → Demo_Debugger_ImWatchingYou.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import PySimpleGUI as sg
import imwatchingyou # STEP 1
import imwatchingyou # STEP 1

"""
Demo program that shows you how to integrate the PySimpleGUI Debugger
into your program.
This particular program is a GUI based program simply to make it easier for you to interact and change
things.
In this example, the debugger is not started initiallly. You click the "Debug" button to launch it
There are THREE steps, and they are copy and pastes.
1. At the top of your app to debug add
Expand All @@ -20,37 +20,41 @@
"""

layout = [
[sg.T('A typical PSG application')],
[sg.In(key='_IN_')],
[sg.T(' ', key='_OUT_', size=(30,1))],
[sg.Radio('a',1, key='_R1_'), sg.Radio('b',1, key='_R2_'), sg.Radio('c',1, key='_R3_')],
[sg.Combo(['c1', 'c2', 'c3'], size=(6,3), key='_COMBO_')],
[sg.Output(size=(50,6))],
[sg.Ok(), sg.Exit(), sg.Debugger(key='Debug')],
]
[sg.T('A typical PSG application')],
[sg.In(key='_IN_')],
[sg.T(' ', key='_OUT_', size=(30, 1))],
[sg.Radio('a', 1, key='_R1_'),
sg.Radio('b', 1, key='_R2_'),
sg.Radio('c', 1, key='_R3_')],
[sg.Combo(['c1', 'c2', 'c3'], size=(6, 3), key='_COMBO_')],
[sg.Output(size=(50, 6))],
[sg.Ok(), sg.Exit(), sg.Button('Debugg'), sg.Button('Popout')],
]

window = sg.Window('This is your Application Window', layout)

counter = 0
timeout = 100

# Start the program with the popout window showing so you can immediately start debugging!
imwatchingyou.show_popout_window()
imwatchingyou.show_debugger_popout_window()

while True: # Your Event Loop
while True: # Your Event Loop
event, values = window.Read(timeout=timeout)
if event in (None, 'Exit'):
break
elif event == 'Ok':
print('You clicked Ok.... this is where print output goes')
imwatchingyou.show_popout_window() # STEP 2 also
elif event == 'Debug':
imwatchingyou.show_debug_window() # STEP 2
imwatchingyou.show_debugger_popout_window() # STEP 2 also
elif event == 'Debugg':
imwatchingyou.show_debugger_window() # STEP 2
elif event == 'Popout':
imwatchingyou.show_debugger_popout_window() # STEP 2
counter += 1
# to prove window is operating, show the input in another area in the window.
window.Element('_OUT_').Update(values['_IN_'])

# don't worry about the "state" of things, just call this function "frequently"
imwatchingyou.refresh() # STEP 3 - refresh debugger
imwatchingyou.refresh_debugger() # STEP 3 - refresh debugger

window.Close()
54 changes: 34 additions & 20 deletions Demo_Debugger_Integration.py
Original file line number Diff line number Diff line change
@@ -1,46 +1,60 @@
import PySimpleGUI as sg
import imwatchingyou # STEP 1
import imwatchingyou # STEP 1

"""
Demo program that shows you how to integrate the PySimpleGUI Debugger
into your program.
This particular program is a GUI based program simply to make it easier for you to interact and change
things.
In this example, the debugger is not started initiallly. You click the "Debug" button to launch it
There are THREE steps, and they are copy and pastes.
1. At the top of your app to debug add
import imwatchingyou
2. Initialize the debugger at the start of your program by calling:
imwatchingyou.initialize()
3. At the top of your app's Event Loop add:
imwatchingyou.refresh(locals(), globals())
2. When you want to show a debug window, call one of two functions:
imwatchingyou.show_debug_window()
imwatchingyou.show_popout_window()
3. You must find a location in your code to "refresh" the debugger. Some loop that's executed often.
In this loop add this call:
imwatchingyou.refresh()
"""

layout = [
[sg.T('A typical PSG application')],
[sg.In(key='_IN_')],
[sg.T(' ', key='_OUT_')],
[sg.Radio('a',1, key='_R1_'), sg.Radio('b',1, key='_R2_'), sg.Radio('c',1, key='_R3_')],
[sg.Combo(['c1', 'c2', 'c3'], size=(6,3), key='_COMBO_')],
[sg.Output(size=(50,6))],
[sg.Ok(), sg.Exit(), sg.B('Debug')],
]
[sg.T('A typical PSG application')],
[sg.In(key='_IN_')],
[sg.T(' ', key='_OUT_', size=(30, 1))],
[sg.Radio('a', 1, key='_R1_'),
sg.Radio('b', 1, key='_R2_'),
sg.Radio('c', 1, key='_R3_')],
[sg.Combo(['c1', 'c2', 'c3'], size=(6, 3), key='_COMBO_')],
[sg.Output(size=(50, 6))],
[sg.Ok(), sg.Exit(), sg.Button('Debug'), sg.Button('Popout')],
]

window = sg.Window('This is your Application Window', layout)

counter = 0
timeout = 100
debug_started = False

while True: # Your Event Loop
if debug_started:
debug_started = imwatchingyou.refresh(locals(), globals()) # STEP 3 - refresh debugger
# Start the program with the popout window showing so you can immediately start debugging!
imwatchingyou.show_debugger_popout_window()

while True: # Your Event Loop
event, values = window.Read(timeout=timeout)
if event in (None, 'Exit'):
break
elif event == 'Ok':
print('You clicked Ok.... this is where print output goes')
elif event == 'Debug' and not debug_started:
imwatchingyou.initialize() # STEP 2
debug_started = True
imwatchingyou.show_debugger_popout_window() # STEP 2 also
elif event == 'Debug':
imwatchingyou.show_debugger_window() # STEP 2
elif event == 'Popout':
imwatchingyou.show_debugger_popout_window() # STEP 2
counter += 1
# to prove window is operating, show the input in another area in the window.
window.Element('_OUT_').Update(values['_IN_'])

# don't worry about the "state" of things, just call this function "frequently"
imwatchingyou.refresh_debugger() # STEP 3 - refresh debugger

window.Close()

0 comments on commit 3908018

Please sign in to comment.