PySimpleGUI/DemoPrograms/Demo_Debugger_Integration.py

47 lines
1.7 KiB
Python
Raw Normal View History

2019-05-24 12:51:17 +00:00
import PySimpleGUI as sg
2019-05-25 15:43:11 +00:00
import PySimpleGUIdebugger # STEP 1
2019-05-24 12:51:17 +00:00
"""
Demo program that shows you how to integrate the PySimpleGUI Debugger
into your program.
In this example, the debugger is not started initiallly. You click the "Debug" button to launch it
2019-05-25 03:52:35 +00:00
There are THREE steps, and they are copy and pastes.
2019-05-24 12:51:17 +00:00
1. At the top of your app to debug add
import PySimpleGUIdebugger
2019-05-25 15:43:11 +00:00
2. Initialize the debugger at the start of your program by calling:
2019-05-25 03:52:35 +00:00
PySimpleGUIdebugger.initialize()
2019-05-25 15:43:11 +00:00
3. At the top of your app's Event Loop add:
PySimpleGUIdebugger.refresh(locals(), globals())
2019-05-24 12:51:17 +00:00
"""
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_')],
2019-05-25 03:52:35 +00:00
[sg.Output(size=(50,6))],
[sg.Ok(), sg.Exit(), sg.B('Debug')],
2019-05-24 12:51:17 +00:00
]
window = sg.Window('This is your Application Window', layout)
2019-05-24 12:51:17 +00:00
counter = 0
timeout = 100
debug_started = False
2019-05-24 12:51:17 +00:00
2019-05-25 16:09:37 +00:00
while True: # Your Event Loop
if debug_started:
debug_started = PySimpleGUIdebugger.refresh(locals(), globals()) # STEP 3 - refresh debugger
2019-05-24 12:51:17 +00:00
event, values = window.Read(timeout=timeout)
if event in (None, 'Exit'):
break
2019-05-25 03:52:35 +00:00
elif event == 'Ok':
print('You clicked Ok.... this is where print output goes')
elif event == 'Debug' and not debug_started:
PySimpleGUIdebugger.initialize() # STEP 2
debug_started = True
2019-05-24 12:51:17 +00:00
counter += 1
2019-05-25 16:09:37 +00:00
window.Element('_OUT_').Update(values['_IN_'])
window.Close()