MCPcopy Index your code
hub / github.com/PySimpleGUI/PySimpleGUI / main

Function main

DemoPrograms/Demo_SDK_Help_Init_Update_Parms.py:15–90  ·  view source on GitHub ↗

Display a window that displays the parms for the init and update methods for each element

()

Source from the content-addressed store, hash-verified

13"""
14
15def main():
16 """
17 Display a window that displays the parms for the init and update methods for each element
18
19 """
20
21 common_parms = ['key','k','font','pad','p', 'visible','size','s', 'change_submits', 'enable_events','right_click_menu','tooltip','metadata', 'expand_x', 'expand_y']
22 element_classes = sg.Element.__subclasses__()
23 element_names = {element.__name__: element for element in element_classes}
24 element_names['Window'] = sg.Window
25 element_names['SystemTray'] = sg.SystemTray
26 # vars3 = [m for m in inspect.getmembers(sys.modules[__name__])]
27 element_arg_default_dict = {}
28 element_arg_default_dict_update = {}
29 for element in element_classes:
30 # Build info about init method
31 args = inspect.getargspec(element.__init__).args[1:]
32 defaults = inspect.getargspec(element.__init__).defaults
33 if len(args) != len(defaults):
34 diff = len(args) - len(defaults)
35 defaults = ('NO DEFAULT',)*diff + defaults
36 args_defaults = []
37 for i, a in enumerate(args):
38 args_defaults.append((a, defaults[i]))
39 element_arg_default_dict[element.__name__] = args_defaults
40
41 # Build info about update method
42 args = inspect.getargspec(element.update).args[1:]
43 defaults = inspect.getargspec(element.update).defaults
44 if args is None or defaults is None:
45 element_arg_default_dict_update[element.__name__] = (('',''),)
46 continue
47 if len(args) != len(defaults):
48 diff = len(args) - len(defaults)
49 defaults = ('NO DEFAULT',)*diff + defaults
50 args_defaults = []
51 for i, a in enumerate(args):
52 args_defaults.append((a, defaults[i]))
53 element_arg_default_dict_update[element.__name__] = args_defaults if len(args_defaults) else (('',''),)
54
55 sg.theme('black')
56 sg.theme_background_color('#131314')
57 sg.theme_text_element_background_color('#131314')
58 sg.theme_input_background_color('#131314')
59 ml = sg.Multiline(size=(40, 30), key='-ML-', write_only=True, reroute_stdout=True, expand_y=True, expand_x=True)
60 layout = [ [sg.Titlebar('Element Init & Update Parm Viewer', background_color='#131314', text_color='white')],
61 [sg.Combo([e for e in sorted(element_names.keys())],background_color='#131314', size=(25,30), enable_events=True, readonly=True, expand_x=True, key='-COMBO-')],
62 sg.vtop([ml], expand_y=True, expand_x=True) ] + [[sg.Sizegrip()]]
63 # layout += [[Button('Exit', size=(15, 1))]]
64
65 window = sg.Window('Init & Update Parms', layout, use_default_focus=False, keep_on_top=True, no_titlebar=True, margins=(0,0),font='Courier 12', right_click_menu=sg.MENU_RIGHT_CLICK_EDITME_EXIT, resizable=True)
66 # ml = window['-ML-'] # type: sg.MLine
67 while True: # Event Loop
68 event, values = window.read()
69 if event in (sg.WIN_CLOSED, 'Exit'):
70 break
71 # ml.print(event, values)
72 if event == '-COMBO-':

Calls 4

readMethod · 0.95
printMethod · 0.95
closeMethod · 0.95
updateMethod · 0.45

Tested by

no test coverage detected