1+ #!/usr/bin/env python
2+ """
3+ Demo - Multiple read_all_window(timeout=20)
4+ A 2-window event loop run in async mode
5+
6+ Super-simple, 25 lines of code.
7+
8+ Copyright 2021 PySimpleGUI
9+ """
10+
11+ import PySimpleGUI as sg
12+
13+ sg .set_options (font = '_ 18' )
14+
15+ window1 = sg .Window ('ONE' , [[sg .T ('Window 1' ,size = (30 ,1 ),k = '-T-' )],[sg .B ('Run' , k = '-B-' ), sg .B ('Exit' )]],
16+ finalize = True )
17+
18+ window2 = sg .Window ('TWO' , [[sg .T ('Window 2' ,k = '-T-' )],[sg .B ('Run' , k = '-B-' ),sg .B ('Exit' )]], finalize = True ,
19+ location = (window1 .current_location ()[0 ]- 250 ,window1 .current_location ()[1 ]))
20+
21+ i , paused = 0 , [False , False ]
22+
23+ while True : # Event Loop
24+ window , event , values = sg .read_all_windows (timeout = 10 )
25+ print (window , event , values ) if event != sg .TIMEOUT_EVENT else None
26+ if window == sg .WIN_CLOSED and event == sg .WIN_CLOSED :
27+ window1 .close ()
28+ window2 .close ()
29+ sg .popup_auto_close ('Exiting...' )
30+ break
31+ if event in (sg .WINDOW_CLOSED , 'Exit' ):
32+ window .close ()
33+ if not paused [0 ]:
34+ window1 ['-T-' ].update ('{:02d}:{:02d}.{:02d}' .format ((i // 100 ) // 60 , (i // 100 ) % 60 , i % 100 ))
35+ if not paused [1 ]:
36+ window2 ['-T-' ].update ('{:02d}:{:02d}.{:02d}' .format ((i // 100 ) // 60 , (i // 100 ) % 60 , i % 100 ))
37+ if event == '-B-' :
38+ paused [0 if window == window1 else 1 ] = not paused [0 if window == window1 else 1 ]
39+ window ['-B-' ].update ('Run' if not paused [0 if window == window1 else 1 ] else 'Pause' )
40+ i += 1
0 commit comments