diff --git a/PySimpleGUI.py b/PySimpleGUI.py index 2cde1e20..c60e13a7 100644 --- a/PySimpleGUI.py +++ b/PySimpleGUI.py @@ -1,5 +1,5 @@ #!/usr/bin/python3 -version = __version__ = "4.34.0.42 Unreleased\nSDK Help Expanded to init & update parms, SDK Help function search, files_delimiter added to FilesBrowse & popup_get_file, SDK help sort by case, popup_get_file fixed default_extension not being passed to button correctly, changed themes so that spaces can be used in defined name, addition of subprocess non-blocking launcher, fix for Debug button color, set_option for default user_settings path to override normal default, define a truly global PySimpleGUI settings path, theme_global() gets the theme for all progams, execute_subprocess_nonblocking bug fix, mark when strout/stderr is restored in multiline elem, Listbox element convert values to list when updated, Column will expand row if y expand set to True, Added color/c parm to debug print, update graph coordinates if a user bound event happens, another attempt at graphs with user events, update mouse location when right click menu item selected, links added to SDK help, checkbox checkbox color parm added, radio button circle color added, SDK help enable toggle summary, Slider trough_color parm, new emojis! Input.update password_char added, erase_all option added to Print, removed use of Output Element from Debug Print window (100% Multiline now), moved path_stem so will be private, fixed popup bug when custom buttons used, fixed Spin.update bug when changing disabled, OptionMenu no longer set a default if none specified, Combo update bug fix for when default was previously specified, Combo - make autosize 1 char wider, OptionMenu correct font and colors for list when shown, added size parm to Combo and OptionMenu update, fixed syntax errors happening on Pi with Python 3.4, update TRANSPARENT_BUTTON colors when theme changes, new button behavior - if button is disabled ignore clicks, disable modal windows if on a Mac, added call to tkroot.update() when closing window - fixes problem on Linux with Print window, new disabled value for Buttons when creating and updating - set disabled=BUTTON_DISABLED_MEANS_IGNORE, button colors reworked - better error checking and handling of single colors, debug Print auto refreshes the Multline line, initial set of 'execute' APIs, first of the Take me to Error popups, removed debug info, button color strings to lower, toolstips for editor strings, autofill editor strings for 10 IDEs, error box stays open during launch now so the error is on the screen, new happy emojis, added Thonny to editors, fix in the button color function, fix in execute_editor, theme swatch previewer now correctly puts color onto clipboard, theme_global fix" +version = __version__ = "4.35.0 Released 3-Mar-2021" __version__ = version.split()[0] # For PEP 396 and PEP 345 @@ -1232,19 +1232,32 @@ class Element(): self.ParentRowFrame.pack(expand=expand_row, fill=fill) - def set_cursor(self,cursor): + def set_cursor(self,cursor=None, cursor_color=None): """ Sets the cursor for the current Element. + "Cursor" is used in 2 different ways in this call. + For the parameter "cursor" it's actually the mouse pointer. + For the parameter "cursor_color" it's the color of the beam used when typing into an input element + :param cursor: The tkinter cursor name :type cursor: (str) + :param cursor_color: color to set the "cursor" to + :type cursor_color: (str) """ if not self._widget_was_created(): return - try: - self.Widget.config(cursor=cursor) - except Exception as e: - print('Warning bad cursor specified ', cursor) - print(e) + if cursor is not None: + try: + self.Widget.config(cursor=cursor) + except Exception as e: + print('Warning bad cursor specified ', cursor) + print(e) + if cursor_color is not None: + try: + self.Widget.config(insertbackground=cursor_color) + except Exception as e: + print('Warning bad cursor color', cursor_color) + print(e) def set_vscroll_position(self, percent_from_top): @@ -2116,9 +2129,9 @@ class Radio(Element): self.CircleBackgroundColor = rgb(*bg_rbg) self.TKRadio.configure(selectcolor=self.CircleBackgroundColor) # The background of the checkbox - if disabled == True: + if disabled is True: self.TKRadio['state'] = 'disabled' - elif disabled == False: + elif disabled is False: self.TKRadio['state'] = 'normal' if visible is False: self.TKRadio.pack_forget() @@ -17687,31 +17700,11 @@ These are the functions used to implement the subprocess APIs (Exec APIs) of PyS ''' -def execute_subprocess_nonblocking(command, *args): - """ - Runs the specified command as a subprocess. - The function will immediately return without waiting for the process to complete running. You can use the returned Popen object to communicate with the subprocess and get the results. - Returns a subprocess Popen object. - - :param command: Filename to load settings from (and save to in the future) - :type command: (str) - :param *args: Variable number of arguments that are passed to the program being started as command line parms - :type *args: (Any) - :return: Popen object - :rtype: (subprocess.Popen) - """ - expanded_args = [str(a) for a in args] - try: - sp = Popen([command, expanded_args], shell=True, stdout=PIPE, stderr=PIPE) - except Exception as e: - print('execute_subprocess_nonblocking... Popen reported an error', e) - sp = None - return sp - def execute_command_subprocess(command, *args, wait=False, cwd=None): """ Runs the specified command as a subprocess. + By default the call is non-blocking. The function will immediately return without waiting for the process to complete running. You can use the returned Popen object to communicate with the subprocess and get the results. Returns a subprocess Popen object. @@ -17751,7 +17744,7 @@ def execute_command_subprocess(command, *args, wait=False, cwd=None): return sp -def execute_py_file(pyfile, parms=None, cwd=None, interpreter_command=None): +def execute_py_file(pyfile, parms=None, cwd=None, interpreter_command=None, wait=False): """ Executes a Python file. The interpreter to use is chosen based on this priority order: @@ -17759,9 +17752,15 @@ def execute_py_file(pyfile, parms=None, cwd=None, interpreter_command=None): 2. global setting "-python command-" 3. the interpreter running running PySimpleGUI :param pyfile: the file to run + :type : (str) :param parms: parameters to pass on the command line + :type : :param cwd: the working directory to use + :type : :param interpreter_command: the command used to invoke the Python interpreter + :type : + :param wait: the working directory to use + :type : :return: Popen object :rtype: (subprocess.Popen) | None """ @@ -17775,9 +17774,9 @@ def execute_py_file(pyfile, parms=None, cwd=None, interpreter_command=None): if python_program == '': python_program = 'python' if _running_windows() else 'python3' if parms is not None and python_program: - sp = execute_command_subprocess(python_program, pyfile, parms, wait=False, cwd=cwd) + sp = execute_command_subprocess(python_program, pyfile, parms, wait=wait, cwd=cwd) elif python_program: - sp = execute_command_subprocess(python_program, pyfile, wait=False, cwd=cwd) + sp = execute_command_subprocess(python_program, pyfile, wait=wait, cwd=cwd) else: print('execute_py_file - No interpreter has been configured') sp = None @@ -17807,7 +17806,7 @@ def execute_editor(file_to_edit, line_number=None): if not format_string or line_number is None: sp = execute_command_subprocess(editor_program, file_to_edit) else: - command = _create_full_editor_command(editor_program, file_to_edit, line_number, format_string) + command = _create_full_editor_command(file_to_edit, line_number, format_string) # print('final command line = ', command) sp = execute_command_subprocess(editor_program, command) else: @@ -17862,13 +17861,12 @@ def execute_file_explorer(folder_to_open=''): return sp -def _create_full_editor_command(editor, file_to_edit, line_number, edit_format_string): +def _create_full_editor_command(file_to_edit, line_number, edit_format_string): """ The global settings has a setting called - "-editor format string-" It uses 3 "tokens" to describe how to invoke the editor in a way that starts at a specific line # - :param editor: :param file_to_edit: :type file_to_edit: str :param edit_format_string: @@ -17877,7 +17875,6 @@ def _create_full_editor_command(editor, file_to_edit, line_number, edit_format_s """ command = edit_format_string - # command = command.replace('', editor) command = command.replace('', '') command = command.replace('', file_to_edit) command = command.replace('', str(line_number) if line_number is not None else '') diff --git a/docs/call reference.md b/docs/call reference.md index dbcc0dcf..4814e9bb 100644 --- a/docs/call reference.md +++ b/docs/call reference.md @@ -65,7 +65,7 @@ Parameter Descriptions: | Tuple[Tuple[str, str], ...] | file_types | the filetypes that will be used to match files. To indicate all files: (("ALL Files", "*.*"),). Note - NOT SUPPORTED ON MAC | | str | initial_folder | starting path for folders and files | | str | default_extension | If no extension entered by user, add this to filename (only used in saveas dialogs) | -| bool | disabled | If True button will be created disabled | +| (bool or str) | disabled | If True button will be created disabled. If BUTTON_DISABLED_MEANS_IGNORE then the button will be ignored rather than disabled using tkinger | | bool | change_submits | DO NOT USE. Only listed for backwards compat - Use enable_events instead | | bool | enable_events | Turns on the element specific events. If this button is a target, should it generate an event when filled in | | str | image_filename | image filename if there is a button image. GIFs and PNGs only. | @@ -75,7 +75,7 @@ Parameter Descriptions: | int | border_width | width of border around button in pixels | | (int, int) | size | (width, height) of the button in characters wide, rows high | | bool | auto_size_button | if True the button size is sized to fit the text | -| Tuple[str, str] or str or None | button_color | Color of button. Easy to remember which is which if you say "ON" between colors. "red" on "green". Normally a tuple, but can be a simplified-button-color-string "foreground on background" | +| Tuple[str, str] or str or Tuple[int, int] or None | button_color | Color of button. default is from theme or the window. Easy to remember which is which if you say "ON" between colors. "red" on "green". Normally a tuple, but can be a simplified-button-color-string "foreground on background". Can be a single color if want to set only the background. | | Tuple[str, str] | disabled_button_color | colors to use when button is disabled (text, background). Use None for a color if don't want to change. Only ttk buttons support both text and background colors. tk buttons only support changing text color | | Tuple[str, str] | highlight_colors | colors to use when button has focus (highlight, background). None will use computed colors. Only used by Linux and only for non-TTK button | | bool | use_ttk_buttons | True = use ttk buttons. False = do not use ttk buttons. None (Default) = use ttk buttons only if on a Mac and not with button images | @@ -173,16 +173,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -284,15 +288,15 @@ Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | text | sets button text | -| Tuple[str, str] or (str) | button_color | of button. Easy to remember which is which if you say "ON" between colors. "red" on "green" | -| bool | disabled | disable or enable state of the element | -| bytes or str | image_data | Raw or Base64 representation of the image to put on button. Choose either filename or data | -| str | image_filename | image filename if there is a button image. GIFs and PNGs only. | -| Tuple[str, str] | disabled_button_color | colors to use when button is disabled (text, background). Use None for a color if don't want to change. Only ttk buttons support both text and background colors. tk buttons only support changing text color | -| bool | visible | control visibility of element | -| int | image_subsample | amount to reduce the size of the image. Divides the size by this number. 2=1/2, 3=1/3, 4=1/4, etc | -| (int, int) | image_size | Size of the image in pixels (width, height) | +| str | text | sets button text | +| Tuple[str, str] or str or Tuple[int, int] or None | button_color | Color of button. default is from theme or the window. Easy to remember which is which if you say "ON" between colors. "red" on "green". Normally a tuple, but can be a simplified-button-color-string "foreground on background". Can be a single color if want to set only the background. | +| (bool or str) | disabled | True/False to enable/disable at the GUI level. Use BUTTON_DISABLED_MEANS_IGNORE to ignore clicks (won't change colors) | +| bytes or str | image_data | Raw or Base64 representation of the image to put on button. Choose either filename or data | +| str | image_filename | image filename if there is a button image. GIFs and PNGs only. | +| Tuple[str, str] | disabled_button_color | colors to use when button is disabled (text, background). Use None for a color if don't want to change. Only ttk buttons support both text and background colors. tk buttons only support changing text color | +| bool | visible | control visibility of element | +| int | image_subsample | amount to reduce the size of the image. Divides the size by this number. 2=1/2, 3=1/3, 4=1/4, etc | +| (int, int) | image_size | Size of the image in pixels (width, height) | ### visible @@ -377,15 +381,15 @@ Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | text | sets button text | -| Tuple[str, str] or (str) | button_color | of button. Easy to remember which is which if you say "ON" between colors. "red" on "green" | -| bool | disabled | disable or enable state of the element | -| bytes or str | image_data | Raw or Base64 representation of the image to put on button. Choose either filename or data | -| str | image_filename | image filename if there is a button image. GIFs and PNGs only. | -| Tuple[str, str] | disabled_button_color | colors to use when button is disabled (text, background). Use None for a color if don't want to change. Only ttk buttons support both text and background colors. tk buttons only support changing text color | -| bool | visible | control visibility of element | -| int | image_subsample | amount to reduce the size of the image. Divides the size by this number. 2=1/2, 3=1/3, 4=1/4, etc | -| (int, int) | image_size | Size of the image in pixels (width, height) | +| str | text | sets button text | +| Tuple[str, str] or str or Tuple[int, int] or None | button_color | Color of button. default is from theme or the window. Easy to remember which is which if you say "ON" between colors. "red" on "green". Normally a tuple, but can be a simplified-button-color-string "foreground on background". Can be a single color if want to set only the background. | +| (bool or str) | disabled | True/False to enable/disable at the GUI level. Use BUTTON_DISABLED_MEANS_IGNORE to ignore clicks (won't change colors) | +| bytes or str | image_data | Raw or Base64 representation of the image to put on button. Choose either filename or data | +| str | image_filename | image filename if there is a button image. GIFs and PNGs only. | +| Tuple[str, str] | disabled_button_color | colors to use when button is disabled (text, background). Use None for a color if don't want to change. Only ttk buttons support both text and background colors. tk buttons only support changing text color | +| bool | visible | control visibility of element | +| int | image_subsample | amount to reduce the size of the image. Divides the size by this number. 2=1/2, 3=1/3, 4=1/4, etc | +| (int, int) | image_size | Size of the image in pixels (width, height) | --------- @@ -513,16 +517,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -787,16 +795,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -942,6 +954,7 @@ Checkbox(text, font = None, background_color = None, text_color = None, + checkbox_color = None, change_submits = False, enable_events = False, disabled = False, @@ -964,6 +977,7 @@ Parameter Descriptions: | str or Tuple[str, int] | font | specifies the font family, size, etc | | str | background_color | color of background | | str | text_color | color of the text | +| str | checkbox_color | color of background of the box that has the check mark in it. The checkmark is the same color as the text | | bool | change_submits | DO NOT USE. Only listed for backwards compat - Use enable_events instead | | bool | enable_events | Turns on the element specific events. Checkbox events happen when an item changes | | bool | disabled | set disable state | @@ -1050,16 +1064,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -1137,6 +1155,7 @@ update(value = None, text = None, background_color = None, text_color = None, + checkbox_color = None, disabled = None, visible = None) ``` @@ -1216,6 +1235,7 @@ Update(value = None, text = None, background_color = None, text_color = None, + checkbox_color = None, disabled = None, visible = None) ``` @@ -1374,16 +1394,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -1598,7 +1622,7 @@ Parameter Descriptions: |--|--|--| | List[Any] or Tuple[Any] | values | values to choose. While displayed as text, the items returned are what the caller supplied, not text | | Any | default_value | Choice to be displayed as initial value. Must match one of values variable contents | -| (int, int) (width, height) | size | width = characters-wide, height = rows-high | +| (int, int) | size | width, height. Width = characters-wide, height = NOTE it's the number of entries to show in the list | | bool | auto_size_text | True if element should be the same size as the contents | | str | background_color | color of background | | str | text_color | color of the text | @@ -1651,7 +1675,7 @@ Parameter Descriptions: ### get Returns the current (right now) value of the Combo. DO NOT USE THIS AS THE NORMAL WAY OF READING A COMBO! -You should be using values from your call to window.Read instead. Know what you're doing if you use it. +You should be using values from your call to window.read instead. Know what you're doing if you use it. `get()` @@ -1691,16 +1715,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -1782,7 +1810,8 @@ update(value = None, disabled = None, readonly = None, font = None, - visible = None) + visible = None, + size = (None, None)) ``` Parameter Descriptions: @@ -1796,6 +1825,7 @@ Parameter Descriptions: | bool | readonly | if True make element readonly (user cannot change any choices). Enables the element if either choice are made. | | str or Tuple[str, int] | font | specifies the font family, size, etc | | bool | visible | control visibility of element | +| (int, int) | size | width, height. Width = characters-wide, height = NOTE it's the number of entries to show in the list | ### visible @@ -1816,7 +1846,7 @@ The following methods are here for backwards compatibility reference. You will ### Get Returns the current (right now) value of the Combo. DO NOT USE THIS AS THE NORMAL WAY OF READING A COMBO! -You should be using values from your call to window.Read instead. Know what you're doing if you use it. +You should be using values from your call to window.read instead. Know what you're doing if you use it. `Get()` @@ -1866,7 +1896,8 @@ Update(value = None, disabled = None, readonly = None, font = None, - visible = None) + visible = None, + size = (None, None)) ``` Parameter Descriptions: @@ -1880,6 +1911,7 @@ Parameter Descriptions: | bool | readonly | if True make element readonly (user cannot change any choices). Enables the element if either choice are made. | | str or Tuple[str, int] | font | specifies the font family, size, etc | | bool | visible | control visibility of element | +| (int, int) | size | width, height. Width = characters-wide, height = NOTE it's the number of entries to show in the list | --------- @@ -2026,16 +2058,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -2691,16 +2727,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -3269,16 +3309,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -3494,16 +3538,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -3845,16 +3893,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -3947,7 +3999,8 @@ update(value = None, visible = None, text_color = None, background_color = None, - move_cursor_to = "end") + move_cursor_to = "end", + password_char = None) ``` Parameter Descriptions: @@ -3961,6 +4014,7 @@ Parameter Descriptions: | str | text_color | change color of text being typed | | str | background_color | change color of the background | | int or str | move_cursor_to | Moves the cursor to a particular offset. Defaults to 'end' | +| str | password_char | Password character if this is a password field | ### visible @@ -4027,7 +4081,8 @@ Update(value = None, visible = None, text_color = None, background_color = None, - move_cursor_to = "end") + move_cursor_to = "end", + password_char = None) ``` Parameter Descriptions: @@ -4041,13 +4096,14 @@ Parameter Descriptions: | str | text_color | change color of text being typed | | str | background_color | change color of the background | | int or str | move_cursor_to | Moves the cursor to a particular offset. Defaults to 'end' | +| str | password_char | Password character if this is a password field | --------- ## Listbox Element A List Box. Provide a list of values for the user to choose one or more of. Returns a list of selected rows - when a window.Read() is executed. + when a window.read() is executed. ``` Listbox(values, @@ -4194,16 +4250,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -4260,7 +4320,7 @@ Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| List[Any] | values | new values to choose based on previously set values | +| List[Any] or Tuple[Any] | values | new values to choose based on previously set values | ### set_vscroll_position @@ -4320,7 +4380,7 @@ Parameter Descriptions: | bool | disabled | disable or enable state of the element | | int or list or tuple | set_to_index | highlights the item(s) indicated. If parm is an int one entry will be set. If is a list, then each entry in list is highlighted | | int | scroll_to_index | scroll the listbox so that this index is the first shown | -| str | mode | changes the select mode according to tkinter's listbox widget | +| str | select_mode | changes the select mode according to tkinter's listbox widget | | bool | visible | control visibility of element | ### visible @@ -4399,7 +4459,7 @@ Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| List[Any] | values | new values to choose based on previously set values | +| List[Any] or Tuple[Any] | values | new values to choose based on previously set values | ### Update @@ -4422,7 +4482,7 @@ Parameter Descriptions: | bool | disabled | disable or enable state of the element | | int or list or tuple | set_to_index | highlights the item(s) indicated. If parm is an int one entry will be set. If is a list, then each entry in list is highlighted | | int | scroll_to_index | scroll the listbox so that this index is the first shown | -| str | mode | changes the select mode according to tkinter's listbox widget | +| str | select_mode | changes the select mode according to tkinter's listbox widget | | bool | visible | control visibility of element | --------- @@ -4542,16 +4602,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -4919,16 +4983,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -5163,7 +5231,7 @@ Parameter Descriptions: |--|--|--| | List[Any] or Tuple[Any] | values | Values to be displayed | | Any | default_value | the value to choose by default | -| (int, int) (width, height) | size | size in characters (wide) and rows (high) | +| (int, int) (width, UNUSED) | size | (width, height) size in characters (wide), height is ignored and present to be consistent with other elements | | bool | disabled | control enabled / disabled | | bool | auto_size_text | True if size of Element should match the contents of the items | | str | background_color | color of background | @@ -5241,16 +5309,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -5340,17 +5412,19 @@ Changes some of the settings for the OptionMenu Element. Must call `Window.Read` update(value = None, values = None, disabled = None, - visible = None) + visible = None, + size = (None, None)) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| Any | value | the value to choose by default | -| List[Any] | values | Values to be displayed | -| bool | disabled | disable or enable state of the element | -| bool | visible | control visibility of element | +| Any | value | the value to choose by default | +| List[Any] | values | Values to be displayed | +| bool | disabled | disable or enable state of the element | +| bool | visible | control visibility of element | +| (int, int) (width, UNUSED) | size | (width, height) size in characters (wide), height is ignored and present to be consistent with other elements | ### visible @@ -5404,17 +5478,19 @@ Changes some of the settings for the OptionMenu Element. Must call `Window.Read` Update(value = None, values = None, disabled = None, - visible = None) + visible = None, + size = (None, None)) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| Any | value | the value to choose by default | -| List[Any] | values | Values to be displayed | -| bool | disabled | disable or enable state of the element | -| bool | visible | control visibility of element | +| Any | value | the value to choose by default | +| List[Any] | values | Values to be displayed | +| bool | disabled | disable or enable state of the element | +| bool | visible | control visibility of element | +| (int, int) (width, UNUSED) | size | (width, height) size in characters (wide), height is ignored and present to be consistent with other elements | --------- @@ -5519,16 +5595,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -5820,16 +5900,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -6075,16 +6159,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -6284,6 +6372,7 @@ Radio(text, auto_size_text = None, background_color = None, text_color = None, + circle_color = None, font = None, key = None, k = None, @@ -6307,6 +6396,7 @@ Parameter Descriptions: | bool | auto_size_text | if True will size the element to match the length of the text | | str | background_color | color of background | | str | text_color | color of the text | +| str | circle_color | color of background of the circle that has the dot selection indicator in it | | str or Tuple[str, int] | font | specifies the font family, size, etc | | str or int or tuple or object | key | Used with window.FindElement and with return values to uniquely identify this element | | str or int or tuple or object | k | Same as the Key. You can use either k or key. Which ever is set will be used. | @@ -6401,16 +6491,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -6480,13 +6574,14 @@ unhide_row() ### update -Changes some of the settings for the Radio Button Element. Must call `Window.Read` or `Window.Finalize` prior +Changes some of the settings for the Radio Button Element. Must call `Window.read` or `Window.finalize` prior ``` update(value = None, text = None, background_color = None, text_color = None, + circle_color = None, disabled = None, visible = None) ``` @@ -6499,6 +6594,7 @@ Parameter Descriptions: | str | text | Text to display next to radio button | | str | background_color | color of background | | str | text_color | color of the text. Note this also changes the color of the selection dot | +| str | circle_color | color of background of the circle that has the dot selection indicator in it | | bool | disabled | disable or enable state of the element | | bool | visible | control visibility of element | @@ -6566,13 +6662,14 @@ Parameter Descriptions: ### Update -Changes some of the settings for the Radio Button Element. Must call `Window.Read` or `Window.Finalize` prior +Changes some of the settings for the Radio Button Element. Must call `Window.read` or `Window.finalize` prior ``` Update(value = None, text = None, background_color = None, text_color = None, + circle_color = None, disabled = None, visible = None) ``` @@ -6585,6 +6682,7 @@ Parameter Descriptions: | str | text | Text to display next to radio button | | str | background_color | color of background | | str | text_color | color of the text. Note this also changes the color of the selection dot | +| str | circle_color | color of background of the circle that has the dot selection indicator in it | | bool | disabled | disable or enable state of the element | | bool | visible | control visibility of element | @@ -6610,6 +6708,7 @@ Slider(range = (None, None), font = None, background_color = None, text_color = None, + trough_color = None, key = None, k = None, pad = None, @@ -6629,7 +6728,7 @@ Parameter Descriptions: | str | orientation | 'horizontal' or 'vertical' ('h' or 'v' also work) | | bool | disable_number_display | if True no number will be displayed by the Slider Element | | int | border_width | width of border around element in pixels | -| enum | relief | relief style. RELIEF_RAISED RELIEF_SUNKEN RELIEF_FLAT RELIEF_RIDGE RELIEF_GROOVE RELIEF_SOLID | +| str or None | relief | relief style. Use constants - RELIEF_RAISED RELIEF_SUNKEN RELIEF_FLAT RELIEF_RIDGE RELIEF_GROOVE RELIEF_SOLID | | bool | change_submits | * DEPRICATED DO NOT USE. Use `enable_events` instead | | bool | enable_events | If True then moving the slider will generate an Event | | bool | disabled | set disable state for element | @@ -6637,6 +6736,7 @@ Parameter Descriptions: | str or Tuple[str, int] | font | specifies the font family, size, etc | | str | background_color | color of slider's background | | str | text_color | color of the slider's text | +| str | trough_color | color of the slider's trough | | str or int or tuple or object | key | Value that uniquely identifies this element from all other elements. Used when Finding an element or in return values. Must be unique to the window | | str or int or tuple or object | k | Same as the Key. You can use either k or key. Which ever is set will be used. | | (int, int or (int, int),(int,int) or int,(int,int)) or ((int, int),int) | pad | Amount of padding to put around element (left/right, top/bottom) or ((left, right), (top, bottom)) | @@ -6710,16 +6810,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -6997,16 +7101,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -7294,16 +7402,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -7606,16 +7718,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -7943,16 +8059,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -8264,16 +8384,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -8573,16 +8697,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -8950,16 +9078,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -9294,16 +9426,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -10076,6 +10212,8 @@ Parameter Descriptions: Makes a window into a "Modal Window" This means user will not be able to interact with other windows until this one is closed + NOTE - Sorry Mac users - you can't have modal windows.... lobby your tkinter Mac devs + ```python make_modal() ``` @@ -12162,6 +12300,13 @@ Parameter Descriptions: Works like a "print" statement but with windowing options. Routes output to the "Debug Window" +In addition to the normal text and background colors, you can use a "colors" tuple/string +The "colors" or "c" parameter defines both the text and background in a single parm. +It can be a tuple or a single single. Both text and background colors need to be specified +colors -(str, str) or str. A combined text/background color definition in a single parameter +c - Tuple[str, str] - Colors tuple has format (foreground, backgrouned) +c - str - can also be a string of the format "foreground on background" ("white on red") + ``` easy_print(args=*<1 or N object>, size = (None, None), @@ -12175,27 +12320,33 @@ easy_print(args=*<1 or N object>, keep_on_top = False, do_not_reroute_stdout = True, text_color = None, - background_color = None) + background_color = None, + colors = None, + c = None, + erase_all = False) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| Any | *args | stuff to output | -| (int, int) | size | (w,h) w=characters-wide, h=rows-high | -| str | end | end character | -| str | sep | separator character | -| Tuple[int, int] | location | Location of upper left corner of the window | -| str or Tuple[str, int] | font | specifies the font family, size, etc | -| bool | no_titlebar | If True no titlebar will be shown | -| bool | no_button | don't show button | -| bool | grab_anywhere | If True: can grab anywhere to move the window (Default = False) | -| str | background_color | color of background | -| str | text_color | color of the text | -| bool | keep_on_top | If True the window will remain above all current windows | -| Tuple[int, int] | location | Location of upper left corner of the window | -| bool | do_not_reroute_stdout | do not reroute stdout | +| Any | *args | stuff to output | +| (int, int) | size | (w,h) w=characters-wide, h=rows-high | +| str | end | end character | +| str | sep | separator character | +| Tuple[int, int] | location | Location of upper left corner of the window | +| str or Tuple[str, int] | font | specifies the font family, size, etc | +| bool | no_titlebar | If True no titlebar will be shown | +| bool | no_button | don't show button | +| bool | grab_anywhere | If True: can grab anywhere to move the window (Default = False) | +| str | background_color | color of background | +| str | text_color | color of the text | +| bool | keep_on_top | If True the window will remain above all current windows | +| Tuple[int, int] | location | Location of upper left corner of the window | +| bool | do_not_reroute_stdout | do not reroute stdout | +| str) or Tuple[str, str] | colors | Either a tuple or a string that has both the text and background colors | +| str) or Tuple[str, str] | c | Either a tuple or a string that has both the text and background colors | +| bool | erase_all | If True when erase the output before printing | Close a previously opened EasyPrint window @@ -12205,6 +12356,13 @@ easy_print_close() Works like a "print" statement but with windowing options. Routes output to the "Debug Window" +In addition to the normal text and background colors, you can use a "colors" tuple/string +The "colors" or "c" parameter defines both the text and background in a single parm. +It can be a tuple or a single single. Both text and background colors need to be specified +colors -(str, str) or str. A combined text/background color definition in a single parameter +c - Tuple[str, str] - Colors tuple has format (foreground, backgrouned) +c - str - can also be a string of the format "foreground on background" ("white on red") + ``` eprint(args=*<1 or N object>, size = (None, None), @@ -12218,30 +12376,43 @@ eprint(args=*<1 or N object>, keep_on_top = False, do_not_reroute_stdout = True, text_color = None, - background_color = None) + background_color = None, + colors = None, + c = None, + erase_all = False) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| Any | *args | stuff to output | -| (int, int) | size | (w,h) w=characters-wide, h=rows-high | -| str | end | end character | -| str | sep | separator character | -| Tuple[int, int] | location | Location of upper left corner of the window | -| str or Tuple[str, int] | font | specifies the font family, size, etc | -| bool | no_titlebar | If True no titlebar will be shown | -| bool | no_button | don't show button | -| bool | grab_anywhere | If True: can grab anywhere to move the window (Default = False) | -| str | background_color | color of background | -| str | text_color | color of the text | -| bool | keep_on_top | If True the window will remain above all current windows | -| Tuple[int, int] | location | Location of upper left corner of the window | -| bool | do_not_reroute_stdout | do not reroute stdout | +| Any | *args | stuff to output | +| (int, int) | size | (w,h) w=characters-wide, h=rows-high | +| str | end | end character | +| str | sep | separator character | +| Tuple[int, int] | location | Location of upper left corner of the window | +| str or Tuple[str, int] | font | specifies the font family, size, etc | +| bool | no_titlebar | If True no titlebar will be shown | +| bool | no_button | don't show button | +| bool | grab_anywhere | If True: can grab anywhere to move the window (Default = False) | +| str | background_color | color of background | +| str | text_color | color of the text | +| bool | keep_on_top | If True the window will remain above all current windows | +| Tuple[int, int] | location | Location of upper left corner of the window | +| bool | do_not_reroute_stdout | do not reroute stdout | +| str) or Tuple[str, str] | colors | Either a tuple or a string that has both the text and background colors | +| str) or Tuple[str, str] | c | Either a tuple or a string that has both the text and background colors | +| bool | erase_all | If True when erase the output before printing | Works like a "print" statement but with windowing options. Routes output to the "Debug Window" +In addition to the normal text and background colors, you can use a "colors" tuple/string +The "colors" or "c" parameter defines both the text and background in a single parm. +It can be a tuple or a single single. Both text and background colors need to be specified +colors -(str, str) or str. A combined text/background color definition in a single parameter +c - Tuple[str, str] - Colors tuple has format (foreground, backgrouned) +c - str - can also be a string of the format "foreground on background" ("white on red") + ``` EasyPrint(args=*<1 or N object>, size = (None, None), @@ -12255,27 +12426,33 @@ EasyPrint(args=*<1 or N object>, keep_on_top = False, do_not_reroute_stdout = True, text_color = None, - background_color = None) + background_color = None, + colors = None, + c = None, + erase_all = False) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| Any | *args | stuff to output | -| (int, int) | size | (w,h) w=characters-wide, h=rows-high | -| str | end | end character | -| str | sep | separator character | -| Tuple[int, int] | location | Location of upper left corner of the window | -| str or Tuple[str, int] | font | specifies the font family, size, etc | -| bool | no_titlebar | If True no titlebar will be shown | -| bool | no_button | don't show button | -| bool | grab_anywhere | If True: can grab anywhere to move the window (Default = False) | -| str | background_color | color of background | -| str | text_color | color of the text | -| bool | keep_on_top | If True the window will remain above all current windows | -| Tuple[int, int] | location | Location of upper left corner of the window | -| bool | do_not_reroute_stdout | do not reroute stdout | +| Any | *args | stuff to output | +| (int, int) | size | (w,h) w=characters-wide, h=rows-high | +| str | end | end character | +| str | sep | separator character | +| Tuple[int, int] | location | Location of upper left corner of the window | +| str or Tuple[str, int] | font | specifies the font family, size, etc | +| bool | no_titlebar | If True no titlebar will be shown | +| bool | no_button | don't show button | +| bool | grab_anywhere | If True: can grab anywhere to move the window (Default = False) | +| str | background_color | color of background | +| str | text_color | color of the text | +| bool | keep_on_top | If True the window will remain above all current windows | +| Tuple[int, int] | location | Location of upper left corner of the window | +| bool | do_not_reroute_stdout | do not reroute stdout | +| str) or Tuple[str, str] | colors | Either a tuple or a string that has both the text and background colors | +| str) or Tuple[str, str] | c | Either a tuple or a string that has both the text and background colors | +| bool | erase_all | If True when erase the output before printing | Close a previously opened EasyPrint window @@ -12285,6 +12462,13 @@ EasyPrintClose() Works like a "print" statement but with windowing options. Routes output to the "Debug Window" +In addition to the normal text and background colors, you can use a "colors" tuple/string +The "colors" or "c" parameter defines both the text and background in a single parm. +It can be a tuple or a single single. Both text and background colors need to be specified +colors -(str, str) or str. A combined text/background color definition in a single parameter +c - Tuple[str, str] - Colors tuple has format (foreground, backgrouned) +c - str - can also be a string of the format "foreground on background" ("white on red") + ``` Print(args=*<1 or N object>, size = (None, None), @@ -12298,27 +12482,33 @@ Print(args=*<1 or N object>, keep_on_top = False, do_not_reroute_stdout = True, text_color = None, - background_color = None) + background_color = None, + colors = None, + c = None, + erase_all = False) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| Any | *args | stuff to output | -| (int, int) | size | (w,h) w=characters-wide, h=rows-high | -| str | end | end character | -| str | sep | separator character | -| Tuple[int, int] | location | Location of upper left corner of the window | -| str or Tuple[str, int] | font | specifies the font family, size, etc | -| bool | no_titlebar | If True no titlebar will be shown | -| bool | no_button | don't show button | -| bool | grab_anywhere | If True: can grab anywhere to move the window (Default = False) | -| str | background_color | color of background | -| str | text_color | color of the text | -| bool | keep_on_top | If True the window will remain above all current windows | -| Tuple[int, int] | location | Location of upper left corner of the window | -| bool | do_not_reroute_stdout | do not reroute stdout | +| Any | *args | stuff to output | +| (int, int) | size | (w,h) w=characters-wide, h=rows-high | +| str | end | end character | +| str | sep | separator character | +| Tuple[int, int] | location | Location of upper left corner of the window | +| str or Tuple[str, int] | font | specifies the font family, size, etc | +| bool | no_titlebar | If True no titlebar will be shown | +| bool | no_button | don't show button | +| bool | grab_anywhere | If True: can grab anywhere to move the window (Default = False) | +| str | background_color | color of background | +| str | text_color | color of the text | +| bool | keep_on_top | If True the window will remain above all current windows | +| Tuple[int, int] | location | Location of upper left corner of the window | +| bool | do_not_reroute_stdout | do not reroute stdout | +| str) or Tuple[str, str] | colors | Either a tuple or a string that has both the text and background colors | +| str) or Tuple[str, str] | c | Either a tuple or a string that has both the text and background colors | +| bool | erase_all | If True when erase the output before printing | Close a previously opened EasyPrint window @@ -14485,9 +14675,11 @@ Parameter Descriptions: | Any | obj | The object to display | | (str) | **RETURN** | Formatted output of the object's values -## The Test Harness +## The Main Program - Test Harness, Global Settings, Debug Information, Upgrade from GitHub -Used to get SDK help, test the installation, get information about the versions, upgrade from GitHub +Used to get SDK help, test the installation, get information about the versions, upgrade from GitHub. + +You can call main() from your code and then access these other features such as the global settings. You can also directly call these functions. The PySimpleGUI "Test Harness". This is meant to be a super-quick test of the Elements. @@ -14495,6 +14687,33 @@ The PySimpleGUI "Test Harness". This is meant to be a super-quick test of the E main() ``` +Collect up and display the data needed to file GitHub issues. +This function will place the information on the clipboard. +You MUST paste the information from the clipboard prior to existing your application. + +``` +main_get_debug_data(suppress_popup = False) +``` + +Parameter Descriptions: + +|Type|Name|Meaning| +|--|--|--| +| bool | suppress_popup | If True no popup window will be shown. The string will be only returned, not displayed | + +Window to set settings that will be used across all PySimpleGUI programs that choose to use them. +Use set_options to set the path to the folder for all PySimpleGUI settings. + +``` +main_global_pysimplegui_settings() +``` + +Parameter Descriptions: + +|Type|Name|Meaning| +|--|--|--| +| (bool) | **RETURN** | True if settings were changed + Display a window that will display the docstrings for each PySimpleGUI Element and the Window object ``` @@ -14589,7 +14808,7 @@ Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| (str) | **RETURN** | (int) - border width currently in use +| (int) | **RETURN** | border width currently in use Sets/Returns the button color currently in use @@ -14601,7 +14820,7 @@ Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| (str) | **RETURN** | Tuple[str, str] - TUPLE with color strings of the button color currently in use (button text color, button background color) +| Tuple[str, str] | **RETURN** | Tuple[str, str] - TUPLE with color strings of the button color currently in use (button text color, button background color) Sets/Returns the background color currently in use for all elements except containers @@ -14625,7 +14844,20 @@ Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| (str) | **RETURN** | (str) - color string currently in use +| (str) | **RETURN** | color string currently in use + +Sets / Gets the global PySimpleGUI Theme. If none is specified then returns the global theme from user settings + +``` +theme_global(new_theme = None) +``` + +Parameter Descriptions: + +|Type|Name|Meaning| +|--|--|--| +| str | new_theme | the new theme name to use | +| (str) | **RETURN** | the currently selected theme Sets/Returns the input element background color currently in use @@ -14661,7 +14893,7 @@ Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| List[str] | **RETURN** | List[str] - A sorted list of the currently available color themes +| List[str] | **RETURN** | A sorted list of the currently available color themes Displays a "Quick Reference Window" showing all of the different Look and Feel settings that are available. They are sorted alphabetically. The legacy color names are mixed in, but otherwise they are sorted into Dark and Light halves @@ -14702,7 +14934,7 @@ Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| (str) | **RETURN** | (int) - border width currently in use +| (int) | **RETURN** | border width currently in use for progress meters Sets/Returns the progress bar colors by the current color theme @@ -14714,7 +14946,7 @@ Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| (str) | **RETURN** | Tuple[str, str] - TUPLE with color strings of the ProgressBar color currently in use(button text color, button background color) +| Tuple[str, str] | **RETURN** | Tuple[str, str] - TUPLE with color strings of the ProgressBar color currently in use(button text color, button background color) Sets/Returns the slider border width currently in use @@ -14726,7 +14958,7 @@ Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| (str) | **RETURN** | (int) - border width currently in use +| (int) | **RETURN** | border width currently in use for sliders Sets/Returns the slider color (used for sliders) @@ -14738,7 +14970,7 @@ Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| (str) | **RETURN** | (str) - color string of the slider color currently in use +| (str) | **RETURN** | color string of the slider color currently in use Sets/Returns the text color currently in use @@ -14766,6 +14998,10 @@ Parameter Descriptions: ## User Settings +In addition to user settings files, there is also a global PySimpleGUI settings file. + +You can directly access the global settings through the UserSettings object: `pysimplegui_user_settings` + Returns the current settings dictionary. If you've not setup the filename for the settings, a default one will be used and then read. @@ -14936,6 +15172,104 @@ Parameter Descriptions: |--|--|--| | dict | settings_dict | The dictionary to be written to the currently defined settings file | +## Exec APIs + +These API calls are used to launch subprocesses. + +Runs the specified command as a subprocess. +By default the call is non-blocking. +The function will immediately return without waiting for the process to complete running. You can use the returned Popen object to communicate with the subprocess and get the results. +Returns a subprocess Popen object. + +``` +execute_command_subprocess(command, + args=*<1 or N object>, + wait = False, + cwd = None) +``` + +Parameter Descriptions: + +|Type|Name|Meaning| +|--|--|--| +| str | command | Filename to load settings from (and save to in the future) | +| Any | *args | Variable number of arguments that are passed to the program being started as command line parms | +| bool | wait | If True then wait for the subprocess to finish | +| str | cwd | Working directory to use when executing the subprocess | +| (subprocess.Popen) | **RETURN** | Popen object + +Runs the editor that was configured in the global settings and opens the file to a specific line number. +Two global settings keys are used. +'-editor program-' the command line used to startup your editor. It's set +in the global settings window or by directly manipulating the PySimpleGUI settings object +'-editor format string-' a string containing 3 "tokens" that describes the command that is executed + + +``` +execute_editor(file_to_edit, line_number = None) +``` + +Parameter Descriptions: + +|Type|Name|Meaning| +|--|--|--| +| str | file_to_edit | the full path to the file to edit | +| int | line_number | optional line number to place the cursor | +| (subprocess.Popen) or None | **RETURN** | Popen object + +The global settings has a setting called - "-explorer program-" +It defines the program to run when this function is called. +The optional folder paramter specified which path should be opened. + +``` +execute_file_explorer(folder_to_open = "") +``` + +Parameter Descriptions: + +|Type|Name|Meaning| +|--|--|--| +| str | folder_to_open | The path to open in the explorer program | +| (subprocess.Popen) or None | **RETURN** | Popen object + +Get the text results of a previously executed execute call +Returns a tuple of the strings (stdout, stderr) + +``` +execute_get_results(subprocess_id) +``` + +Parameter Descriptions: + +|Type|Name|Meaning| +|--|--|--| +| (subprocess.Popen) | subprocess_id | a Popen subprocess ID returned from a previous execute call | + +Executes a Python file. +The interpreter to use is chosen based on this priority order: +1. interpreter_command paramter +2. global setting "-python command-" +3. the interpreter running running PySimpleGUI + +``` +execute_py_file(pyfile, + parms = None, + cwd = None, + interpreter_command = None, + wait = False) +``` + +Parameter Descriptions: + +|Type|Name|Meaning| +|--|--|--| +| str | pyfile | the file to run | +| | parms | parameters to pass on the command line | +| | cwd | the working directory to use | +| | interpreter_command | the command used to invoke the Python interpreter | +| | wait | the working directory to use | +| (subprocess.Popen) or None | **RETURN** | Popen object + ## Misc Fills a window with values provided in a values dictionary { element_key : new_value } @@ -15109,8 +15443,8 @@ Parameter Descriptions: | bool | auto_size_buttons | True if Buttons in this Window should be sized to exactly fit the text on this. | | str or Tuple[str, int] | font | specifies the font family, size, etc | | int | border_width | width of border around element | -| ??? | slider_border_width | ??? | -| ??? | slider_relief | ??? | +| int | slider_border_width | Width of the border around sliders | +| str | slider_relief | Type of relief to use for sliders | | ??? | slider_orientation | ??? | | ??? | autoclose_time | ??? | | ??? | message_box_line_width | ??? | @@ -15123,13 +15457,13 @@ Parameter Descriptions: | str | background_color | color of background | | str | element_background_color | element background color | | str | text_element_background_color | text element background color | -| idk_yetReally | input_elements_background_color | ??? | -| ??? | input_text_color | ??? | -| ??? | scrollbar_color | ??? | +| str | input_elements_background_color | Default color to use for the background of input elements | +| str | input_text_color | Default color to use for the text for Input elements | +| str | scrollbar_color | Default color to use for the slider trough | | str | text_color | color of the text | -| ??? | element_text_color | ??? | +| str | element_text_color | Default color to use for Text elements | | Tuple[int, int] | debug_win_size | window size | -| ??? | window_location | (Default = (None)) | +| Tuple[int, int] or None | window_location | Default location to place windows. Not setting will center windows on the display | | ??? | error_button_color | (Default = (None)) | | int | tooltip_time | time in milliseconds to wait before showing a tooltip. Default is 400ms | | str or Tuple[str, int] or Tuple[str, int, str] | tooltip_font | font to use for all tooltips | @@ -15232,8 +15566,8 @@ Parameter Descriptions: | bool | auto_size_buttons | True if Buttons in this Window should be sized to exactly fit the text on this. | | str or Tuple[str, int] | font | specifies the font family, size, etc | | int | border_width | width of border around element | -| ??? | slider_border_width | ??? | -| ??? | slider_relief | ??? | +| int | slider_border_width | Width of the border around sliders | +| str | slider_relief | Type of relief to use for sliders | | ??? | slider_orientation | ??? | | ??? | autoclose_time | ??? | | ??? | message_box_line_width | ??? | @@ -15246,13 +15580,13 @@ Parameter Descriptions: | str | background_color | color of background | | str | element_background_color | element background color | | str | text_element_background_color | text element background color | -| idk_yetReally | input_elements_background_color | ??? | -| ??? | input_text_color | ??? | -| ??? | scrollbar_color | ??? | +| str | input_elements_background_color | Default color to use for the background of input elements | +| str | input_text_color | Default color to use for the text for Input elements | +| str | scrollbar_color | Default color to use for the slider trough | | str | text_color | color of the text | -| ??? | element_text_color | ??? | +| str | element_text_color | Default color to use for Text elements | | Tuple[int, int] | debug_win_size | window size | -| ??? | window_location | (Default = (None)) | +| Tuple[int, int] or None | window_location | Default location to place windows. Not setting will center windows on the display | | ??? | error_button_color | (Default = (None)) | | int | tooltip_time | time in milliseconds to wait before showing a tooltip. Default is 400ms | | str or Tuple[str, int] or Tuple[str, int, str] | tooltip_font | font to use for all tooltips | diff --git a/docs/screenshots_demos.md b/docs/screenshots_demos.md index 747b4d1b..22ceae60 100644 --- a/docs/screenshots_demos.md +++ b/docs/screenshots_demos.md @@ -1,234 +1,221 @@ -| Images and Link | -| --------- | -| [Demo_All_Widgets.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_All_Widgets.py) | -| [Demo_Animated_GIFs.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Animated_GIFs.py) | -| [Demo_Animated_GIFs_Using_PIL.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Animated_GIFs_Using_PIL.py) | -| [Demo_Bar_Chart.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Bar_Chart.py) | -| [Demo_Base64_Image_Encoder.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Base64_Image_Encoder.py) | -| [Demo_Base64_Single_Image_Encoder.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Base64_Single_Image_Encoder.py) | -| [Demo_Borderless_Window.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Borderless_Window.py) | -| [Demo_Buttons_Base64_Shaded.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Buttons_Base64_Shaded.py) | -| [Demo_Buttons_Base64_Simple.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Buttons_Base64_Simple.py) | -| [Demo_Buttons_Base64_User_Settings.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Buttons_Base64_User_Settings.py) | -| [Demo_Buttons_Mac.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Buttons_Mac.py) | -| [Demo_Buttons_Nice_Graphics.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Buttons_Nice_Graphics.py) | -| [Demo_Button_Click.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Button_Click.py) | -| [Demo_Button_Events_From_Browse.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Button_Events_From_Browse.py) | -| [Demo_Button_Func_Calls.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Button_Func_Calls.py) | -| [Demo_Button_States.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Button_States.py) | -| [Demo_Button_Toggle.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Button_Toggle.py) | -| [Demo_Calendar.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Calendar.py) | -| [Demo_Canvas.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Canvas.py) | -| [Demo_Change_Submits_InputText.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Change_Submits_InputText.py) | -| [Demo_Chat.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Chat.py) | -| [Demo_Chatterbot.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Chatterbot.py) | -| [Demo_Chatterbot_With_TTS.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Chatterbot_With_TTS.py) | -| [Demo_Chat_With_History.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Chat_With_History.py) | -| [Demo_Color.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Color.py) | -| [Demo_Color_Chooser_Custom.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Color_Chooser_Custom.py) | -| [Demo_Color_Names.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Color_Names.py) | -| [Demo_Color_Names_Smaller_List.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Color_Names_Smaller_List.py) | -| [Demo_Color_Swatches.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Color_Swatches.py) | -| [Demo_Columns.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Columns.py) | -| [Demo_Column_And_Frames.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Column_And_Frames.py) | -| [Demo_Column_Collapsible_Sections.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Column_Collapsible_Sections.py) | -| [Demo_Column_Elem_Swap_Entire_Window.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Column_Elem_Swap_Entire_Window.py) | -| [Demo_Compact_Layouts_Element_Renaming.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Compact_Layouts_Element_Renaming.py) | -| [Demo_Compare_Files.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Compare_Files.py) | -| [Demo_Control_Panel_Button_Grid.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Control_Panel_Button_Grid.py) | -| [Demo_Conways_Game_of_Life.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Conways_Game_of_Life.py) | -| [Demo_Crossword_Puzzle.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Crossword_Puzzle.py) | -| [Demo_Cursor_Changed_To_Hand.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Cursor_Changed_To_Hand.py) | -| [Demo_Dashboard.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Dashboard.py) | -| [Demo_Date_Chooser.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Date_Chooser.py) | -| [Demo_Debugger_Built_Into_PSG.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Debugger_Built_Into_PSG.py) | -| [Demo_Debugger_ImWatchingYou.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Debugger_ImWatchingYou.py) | -| [Demo_Design_Patterns.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Design_Patterns.py) | -| [Demo_Design_Pattern_Multiple_Windows.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Design_Pattern_Multiple_Windows.py) | -| [Demo_Design_Pattern_Multiple_Windows1.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Design_Pattern_Multiple_Windows1.py) | -| [Demo_Design_Pattern_Multiple_Windows2.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Design_Pattern_Multiple_Windows2.py) | -| [Demo_Design_Pattern_Multiple_Windows3.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Design_Pattern_Multiple_Windows3.py) | -| [Demo_Design_Pattern_Multiple_Windows_Both_Visible.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Design_Pattern_Multiple_Windows_Both_Visible.py) | -| [Demo_Design_Pattern_Multiple_Windows_OLD METHOD.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Design_Pattern_Multiple_Windows_OLD METHOD.py) | -| [Demo_Design_Pattern_Persistent_Window.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Design_Pattern_Persistent_Window.py) | -| [Demo_Design_Pattern_Save_Theme.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Design_Pattern_Save_Theme.py) | -| [Demo_Desktop_Floating_Toolbar.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Desktop_Floating_Toolbar.py) | -| [Demo_Desktop_Widget_CPU_Dashboard.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Desktop_Widget_CPU_Dashboard.py) | -| [Demo_Desktop_Widget_CPU_Gauge.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Desktop_Widget_CPU_Gauge.py) | -| [Demo_Desktop_Widget_CPU_Graph.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Desktop_Widget_CPU_Graph.py) | -| [Demo_Desktop_Widget_CPU_Grid_Of_Gauges.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Desktop_Widget_CPU_Grid_Of_Gauges.py) | -| [Demo_Desktop_Widget_CPU_Square.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Desktop_Widget_CPU_Square.py) | -| [Demo_Desktop_Widget_CPU_Top_Processes.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Desktop_Widget_CPU_Top_Processes.py) | -| [Demo_Desktop_Widget_CPU_Utilization_Simple.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Desktop_Widget_CPU_Utilization_Simple.py) | -| [Demo_Desktop_Widget_Drive_Usage.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Desktop_Widget_Drive_Usage.py) | -| [Demo_Desktop_Widget_Email_Notification.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Desktop_Widget_Email_Notification.py) | -| [Demo_Desktop_Widget_psutil_Dashboard.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Desktop_Widget_psutil_Dashboard.py) | -| [Demo_Desktop_Widget_RAM_Gauge.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Desktop_Widget_RAM_Gauge.py) | -| [Demo_Desktop_Widget_RAM_Square.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Desktop_Widget_RAM_Square.py) | -| [Demo_Desktop_Widget_RAM_Used.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Desktop_Widget_RAM_Used.py) | -| [Demo_Desktop_Widget_Timer.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Desktop_Widget_Timer.py) | -| [Demo_Desktop_Widget_Weather.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Desktop_Widget_Weather.py) | -| [Demo_Disable_Elements.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Disable_Elements.py) | -| [Demo_DuplicateFileFinder.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_DuplicateFileFinder.py) | -| [Demo_Email_Send.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Email_Send.py) | -| [Demo_Event_Binding.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Event_Binding.py) | -| [Demo_Event_Callback_Simulation.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Event_Callback_Simulation.py) | -| [Demo_EXE_Maker.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_EXE_Maker.py) | -| [Demo_Fill_Form.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Fill_Form.py) | -| [Demo_Floating_Toolbar.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Floating_Toolbar.py) | -| [Demo_Font_Previewer.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Font_Previewer.py) | -| [Demo_Font_Sizer.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Font_Sizer.py) | -| [Demo_Font_String.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Font_String.py) | -| [Demo_Game_Frontend_Battleship.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Game_Frontend_Battleship.py) | -| [Demo_Game_Frontend_Battleship_No_List_Comprehensions.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Game_Frontend_Battleship_No_List_Comprehensions.py) | -| [Demo_Game_Frontend_Battleship_Single_List_Comprehension.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Game_Frontend_Battleship_Single_List_Comprehension.py) | -| [Demo_GitHub_File_Copier.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_GitHub_File_Copier.py) | -| [Demo_GoodColors.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_GoodColors.py) | -| [Demo_GoodColors_2.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_GoodColors_2.py) | -| [Demo_Google_TTS.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Google_TTS.py) | -| [Demo_Graph_Ball_Game.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Graph_Ball_Game.py) | -| [Demo_Graph_Drawing.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Graph_Drawing.py) | -| [Demo_Graph_Drawing_And_Dragging_Figures.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Graph_Drawing_And_Dragging_Figures.py) | -| [Demo_Graph_Drawing_And_Dragging_Figures_2_Windows.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Graph_Drawing_And_Dragging_Figures_2_Windows.py) | -| [Demo_Graph_Element.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Graph_Element.py) | -| [Demo_Graph_Element_Sine_Wave.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Graph_Element_Sine_Wave.py) | -| [Demo_Graph_Elem_Image_Album.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Graph_Elem_Image_Album.py) | -| [Demo_Graph_FourierTransform.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Graph_FourierTransform.py) | -| [Demo_Graph_Noise.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Graph_Noise.py) | -| [Demo_Graph_pymunk_2D_Graphics.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Graph_pymunk_2D_Graphics.py) | -| [Demo_Graph_pymunk_Desktop_Balls.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Graph_pymunk_Desktop_Balls.py) | -| [Demo_Hello_World.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Hello_World.py) | -| [Demo_HowDoI.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_HowDoI.py) | -| [Demo_Image_Elem_Image_Viewer_PIL_Based.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Image_Elem_Image_Viewer_PIL_Based.py) | -| [Demo_Image_Elem_Splash_Screen.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Image_Elem_Splash_Screen.py) | -| [Demo_Image_Viewer_Thumbnails.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Image_Viewer_Thumbnails.py) | -| [Demo_Img_Viewer.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Img_Viewer.py) | -| [Demo_Input_Auto_Complete.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Input_Auto_Complete.py) | -| [Demo_Input_Validation.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Input_Validation.py) | -| [Demo_Invisible_Elements.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Invisible_Elements.py) | -| [Demo_Invisible_Elements_Pinning.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Invisible_Elements_Pinning.py) | -| [Demo_IP_Address_Entry.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_IP_Address_Entry.py) | -| [Demo_Keyboard.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Keyboard.py) | -| [Demo_Keyboard_ENTER_Presses_Button.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Keyboard_ENTER_Presses_Button.py) | -| [Demo_Keyboard_Realtime.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Keyboard_Realtime.py) | -| [Demo_Keypad.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Keypad.py) | -| [Demo_Layout_Extend.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Layout_Extend.py) | -| [Demo_Layout_Generation.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Layout_Generation.py) | -| [Demo_Layout_Vertical.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Layout_Vertical.py) | -| [Demo_Layout_Vertical_Centered.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Layout_Vertical_Centered.py) | -| [Demo_LED_Clock_Weather.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_LED_Clock_Weather.py) | -| [Demo_LED_Indicators.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_LED_Indicators.py) | -| [Demo_LED_Indicators_Text_Based.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_LED_Indicators_Text_Based.py) | -| [Demo_Listbox_Search_Filter.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Listbox_Search_Filter.py) | -| [Demo_Look_And_Feel_Theme_Browser.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Look_And_Feel_Theme_Browser.py) | -| [Demo_Look_And_Feel_Theme_Dump.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Look_And_Feel_Theme_Dump.py) | -| [Demo_Machine_Learning.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Machine_Learning.py) | -| [Demo_Main_Control_Test_Panel.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Main_Control_Test_Panel.py) | -| [Demo_Matplotlib.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Matplotlib.py) | -| [Demo_Matplotlib_Animated.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Matplotlib_Animated.py) | -| [Demo_Matplotlib_Animated_Scatter.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Matplotlib_Animated_Scatter.py) | -| [Demo_Matplotlib_Browser.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Matplotlib_Browser.py) | -| [Demo_Matplotlib_Browser_Paned.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Matplotlib_Browser_Paned.py) | -| [Demo_Matplotlib_Embedded_TEMPLATE.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Matplotlib_Embedded_TEMPLATE.py) | -| [Demo_Matplotlib_Embedded_Toolbar.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Matplotlib_Embedded_Toolbar.py) | -| [Demo_Matplotlib_Grid_of_Graphs_Using_PIL.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Matplotlib_Grid_of_Graphs_Using_PIL.py) | -| [Demo_Matplotlib_PyLab.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Matplotlib_PyLab.py) | -| [Demo_Matplotlib_Styles.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Matplotlib_Styles.py) | -| [Demo_Matplotlib_Two_Windows.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Matplotlib_Two_Windows.py) | -| [Demo_Media_Player.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Media_Player.py) | -| [Demo_Media_Player_VLC_Based.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Media_Player_VLC_Based.py) | -| [Demo_Menus.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Menus.py) | -| [Demo_Menu_With_Toolbar.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Menu_With_Toolbar.py) | -| [Demo_Multiline_cprint_Printing.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Multiline_cprint_Printing.py) | -| [Demo_Multiline_Multicolored_Text.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Multiline_Multicolored_Text.py) | -| [Demo_Multiple_Windows_Experimental.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Multiple_Windows_Experimental.py) | -| [Demo_Multithreaded_Animated_Shell_Command.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Multithreaded_Animated_Shell_Command.py) | -| [Demo_Multithreaded_Different_Threads.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Multithreaded_Different_Threads.py) | -| [Demo_Multithreaded_Logging.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Multithreaded_Logging.py) | -| [Demo_Multithreaded_Long_Shell_Operation_Animated.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Multithreaded_Long_Shell_Operation_Animated.py) | -| [Demo_Multithreaded_Long_Tasks.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Multithreaded_Long_Tasks.py) | -| [Demo_Multithreaded_Long_Task_Simple.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Multithreaded_Long_Task_Simple.py) | -| [Demo_Multithreaded_Multiple_Threads.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Multithreaded_Multiple_Threads.py) | -| [Demo_Multithreaded_Write_Event_Value.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Multithreaded_Write_Event_Value.py) | -| [Demo_Multithreaded_Write_Event_Value_MultiWindow.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Multithreaded_Write_Event_Value_MultiWindow.py) | -| [Demo_Nice_Buttons.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Nice_Buttons.py) | -| [Demo_NonBlocking_Form.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_NonBlocking_Form.py) | -| [Demo_Notification_Window_Alpha_Channel.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Notification_Window_Alpha_Channel.py) | -| [Demo_Notification_Window_Fade_In_Out.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Notification_Window_Fade_In_Out.py) | -| [Demo_Notification_Window_Multiprocessing.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Notification_Window_Multiprocessing.py) | -| [Demo_OpenCV.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_OpenCV.py) | -| [Demo_OpenCV_4_Line_Program.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_OpenCV_4_Line_Program.py) | -| [Demo_OpenCV_7_Line_Program.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_OpenCV_7_Line_Program.py) | -| [Demo_OpenCV_Draw_On_Webcam_Image.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_OpenCV_Draw_On_Webcam_Image.py) | -| [Demo_OpenCV_Simple_GUI.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_OpenCV_Simple_GUI.py) | -| [Demo_OpenCV_Webcam.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_OpenCV_Webcam.py) | -| [Demo_OpenCV_Webcam_ASCII.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_OpenCV_Webcam_ASCII.py) | -| [Demo_OpenCV_Webcam_Minimal.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_OpenCV_Webcam_Minimal.py) | -| [Demo_Paned_Window.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Paned_Window.py) | -| [Demo_Password_Login.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Password_Login.py) | -| [Demo_Ping_Line_Graph.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Ping_Line_Graph.py) | -| [Demo_Pi_LEDs.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Pi_LEDs.py) | -| [Demo_Pi_Robotics.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Pi_Robotics.py) | -| [Demo_PNG_Thumbnail_Viewer.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_PNG_Thumbnail_Viewer.py) | -| [Demo_PNG_Viewer.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_PNG_Viewer.py) | -| [Demo_Pong.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Pong.py) | -| [Demo_Pong_Multiple_Platforms.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Pong_Multiple_Platforms.py) | -| [Demo_Popups.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Popups.py) | -| [Demo_Popup_Custom.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Popup_Custom.py) | -| [Demo_Progress_Meters.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Progress_Meters.py) | -| [Demo_psutil_Kill_Processes.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_psutil_Kill_Processes.py) | -| [Demo_psutil_Kill_Python_Processes.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_psutil_Kill_Python_Processes.py) | -| [Demo_PyCharm_Launcher.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_PyCharm_Launcher.py) | -| [Demo_PyCharm_Self_Edit.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_PyCharm_Self_Edit.py) | -| [Demo_PyGame_Snake_Game.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_PyGame_Snake_Game.py) | -| [Demo_Pyplot_Bar_Chart.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Pyplot_Bar_Chart.py) | -| [Demo_Pyplot_Bar_Chart2.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Pyplot_Bar_Chart2.py) | -| [Demo_Radio_Buttons_Simulated.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Radio_Buttons_Simulated.py) | -| [Demo_Reddit_Search.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Reddit_Search.py) | -| [Demo_Save_Any_Window_As_Image.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Save_Any_Window_As_Image.py) | -| [Demo_Save_Window_As_Image.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Save_Window_As_Image.py) | -| [Demo_Script_Launcher.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Script_Launcher.py) | -| [Demo_Script_Launcher_ANSI_Color_Output.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Script_Launcher_ANSI_Color_Output.py) | -| [Demo_Script_Launcher_Realtime_Output.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Script_Launcher_Realtime_Output.py) | -| [Demo_Script_Parameters.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Script_Parameters.py) | -| [Demo_Separator_Elements.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Separator_Elements.py) | -| [Demo_Settings_Save_Load.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Settings_Save_Load.py) | -| [Demo_Sort_Visualizer.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Sort_Visualizer.py) | -| [Demo_Spinner_Compound_Element.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Spinner_Compound_Element.py) | -| [Demo_Status_Bar.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Status_Bar.py) | -| [Demo_Stdout.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Stdout.py) | -| [Demo_Sudoku.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Sudoku.py) | -| [Demo_Super_Simple_Form.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Super_Simple_Form.py) | -| [Demo_System_Tray_GUI_Window_Design_Pattern.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_System_Tray_GUI_Window_Design_Pattern.py) | -| [Demo_System_Tray_Icon.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_System_Tray_Icon.py) | -| [Demo_System_Tray_Reminder.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_System_Tray_Reminder.py) | -| [Demo_Table_CSV.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Table_CSV.py) | -| [Demo_Table_Element.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Table_Element.py) | -| [Demo_Table_Pandas.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Table_Pandas.py) | -| [Demo_Table_Simulation.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Table_Simulation.py) | -| [Demo_Table_Simulation_Arrow_Keys.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Table_Simulation_Arrow_Keys.py) | -| [Demo_Tabs.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Tabs.py) | -| [Demo_Tabs_Nested.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Tabs_Nested.py) | -| [Demo_Tabs_Simple.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Tabs_Simple.py) | -| [Demo_Theme_Browser.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Theme_Browser.py) | -| [Demo_Theme_Color_Swatches.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Theme_Color_Swatches.py) | -| [Demo_Theme_Previewer_Dark.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Theme_Previewer_Dark.py) | -| [Demo_Timer.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Timer.py) | -| [Demo_Titlebar_Custom_Async.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Titlebar_Custom_Async.py) | -| [Demo_Titlebar_Custom_Dark_Theme.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Titlebar_Custom_Dark_Theme.py) | -| [Demo_Titlebar_Custom_Multiple_Combinations.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Titlebar_Custom_Multiple_Combinations.py) | -| [Demo_Touch_Keyboard.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Touch_Keyboard.py) | -| [Demo_Tree_Element.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Tree_Element.py) | -| [Demo_Turtle.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Turtle.py) | -| [Demo_Unicode_Characters.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Unicode_Characters.py) | -| [Demo_Uno_Card_Game.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Uno_Card_Game.py) | -| [Demo_User_Settings.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_User_Settings.py) | -| [Demo_User_Settings_Browse_File_Folder.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_User_Settings_Browse_File_Folder.py) | -| [Demo_User_Settings_Class_Remember_Input_and_Combo.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_User_Settings_Class_Remember_Input_and_Combo.py) | -| [Demo_User_Settings_Remember_Input_and_Combo.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_User_Settings_Remember_Input_and_Combo.py) | -| [Demo_Window_Background_Image.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Window_Background_Image.py) | -| [Demo_Window_Disappear.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Window_Disappear.py) | -| [Demo_Window_Open_Multiple_Times.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Window_Open_Multiple_Times.py) | -| [Demo_Youtube-dl_Frontend.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Youtube-dl_Frontend.py) | -| [Demo_YouTube_Intro.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_YouTube_Intro.py) | -| [ping.py](https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/ping.py) | +C:\Python\Anaconda3\python.exe C:/Users/mike/AppData/Roaming/JetBrains/PyCharmCE2020.3/scratches/scratch_1152.py +Go {'-IN-': 'C:\\Python\\PycharmProjects\\PSG\\DemoPrograms\\screenshots', 'Browse': ''} +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_All_Widgets.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_All_Widgets.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Animated_GIFs.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Animated_GIFs.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Bar_Chart.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Bar_Chart.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Base64_Image_Encoder.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Base64_Image_Encoder.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Base64_Single_Image_Encoder.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Base64_Single_Image_Encoder.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Borderless_Window.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Borderless_Window.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Buttons_Base64_Shaded.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Buttons_Base64_Shaded.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Buttons_Base64_Simple.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Buttons_Base64_Simple.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Buttons_Base64_User_Settings.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Buttons_Base64_User_Settings.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Buttons_Mac.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Buttons_Mac.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Buttons_Nice_Graphics.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Buttons_Nice_Graphics.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Button_Click.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Button_Click.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Button_Events_From_Browse.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Button_Events_From_Browse.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Button_Func_Calls.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Button_Func_Calls.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Button_States.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Button_States.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Button_Toggle.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Button_Toggle.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Calendar.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Calendar.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Canvas.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Canvas.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Change_Submits_InputText.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Change_Submits_InputText.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Chat.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Chat.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Chatterbot.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Chatterbot.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Chatterbot_With_TTS.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Chatterbot_With_TTS.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Chat_With_History.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Chat_With_History.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Color.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Color.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Color_Chooser_Custom.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Color_Chooser_Custom.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Color_Names.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Color_Names.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Color_Names_Smaller_List.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Color_Names_Smaller_List.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Color_Swatches.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Color_Swatches.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Columns.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Columns.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Column_And_Frames.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Column_And_Frames.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Column_Collapsible_Sections.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Column_Collapsible_Sections.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Column_Elem_Swap_Entire_Window.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Column_Elem_Swap_Entire_Window.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Compact_Layouts_Element_Renaming.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Compact_Layouts_Element_Renaming.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Compare_Files.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Compare_Files.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Control_Panel_Button_Grid.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Control_Panel_Button_Grid.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Conways_Game_of_Life.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Conways_Game_of_Life.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Crossword_Puzzle.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Crossword_Puzzle.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Cursor_Changed_To_Hand.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Cursor_Changed_To_Hand.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Dashboard.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Dashboard.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Date_Chooser.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Date_Chooser.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Debugger_Built_Into_PSG.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Debugger_Built_Into_PSG.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Debugger_ImWatchingYou.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Debugger_ImWatchingYou.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Design_Patterns.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Design_Patterns.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Design_Pattern_Multiple_Windows.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Design_Pattern_Multiple_Windows.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Design_Pattern_Multiple_Windows1.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Design_Pattern_Multiple_Windows1.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Design_Pattern_Multiple_Windows2.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Design_Pattern_Multiple_Windows2.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Design_Pattern_Multiple_Windows3.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Design_Pattern_Multiple_Windows3.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Design_Pattern_Multiple_Windows_Both_Visible.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Design_Pattern_Multiple_Windows_Both_Visible.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Design_Pattern_Multiple_Windows_OLD METHOD.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Design_Pattern_Multiple_Windows_OLD METHOD.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Design_Pattern_Persistent_Window.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Design_Pattern_Persistent_Window.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Design_Pattern_Save_Theme.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Design_Pattern_Save_Theme.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Desktop_Floating_Toolbar.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Desktop_Floating_Toolbar.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Desktop_Widget_CPU_Dashboard.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Desktop_Widget_CPU_Dashboard.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Desktop_Widget_CPU_Gauge.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Desktop_Widget_CPU_Gauge.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Desktop_Widget_CPU_Graph.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Desktop_Widget_CPU_Graph.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Desktop_Widget_CPU_Grid_Of_Gauges.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Desktop_Widget_CPU_Grid_Of_Gauges.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Desktop_Widget_CPU_Square.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Desktop_Widget_CPU_Square.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Desktop_Widget_CPU_Top_Processes.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Desktop_Widget_CPU_Top_Processes.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Desktop_Widget_CPU_Utilization_Simple.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Desktop_Widget_CPU_Utilization_Simple.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Desktop_Widget_Drive_Usage.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Desktop_Widget_Drive_Usage.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Desktop_Widget_Email_Notification.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Desktop_Widget_Email_Notification.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Desktop_Widget_psutil_Dashboard.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Desktop_Widget_psutil_Dashboard.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Desktop_Widget_RAM_Gauge.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Desktop_Widget_RAM_Gauge.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Desktop_Widget_RAM_Square.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Desktop_Widget_RAM_Square.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Desktop_Widget_RAM_Used.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Desktop_Widget_RAM_Used.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Desktop_Widget_Timer.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Desktop_Widget_Timer.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Desktop_Widget_Weather.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Desktop_Widget_Weather.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Disable_Elements.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Disable_Elements.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_DuplicateFileFinder.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_DuplicateFileFinder.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Email_Send.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Email_Send.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Event_Binding.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Event_Binding.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Event_Callback_Simulation.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Event_Callback_Simulation.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_EXE_Maker.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_EXE_Maker.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Fill_Form.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Fill_Form.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Floating_Toolbar.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Floating_Toolbar.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Font_Previewer.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Font_Previewer.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Font_Sizer.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Font_Sizer.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Font_String.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Font_String.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Game_Frontend_Battleship.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Game_Frontend_Battleship.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Game_Frontend_Battleship_No_List_Comprehensions.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Game_Frontend_Battleship_No_List_Comprehensions.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Game_Frontend_Battleship_Single_List_Comprehension.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Game_Frontend_Battleship_Single_List_Comprehension.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_GitHub_File_Copier.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_GitHub_File_Copier.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_GoodColors.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_GoodColors.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_GoodColors_2.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_GoodColors_2.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Google_TTS.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Google_TTS.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Graph_Ball_Game.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Graph_Ball_Game.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Graph_Drawing.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Graph_Drawing.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Graph_Drawing_And_Dragging_Figures.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Graph_Drawing_And_Dragging_Figures.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Graph_Drawing_And_Dragging_Figures_2_Windows.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Graph_Drawing_And_Dragging_Figures_2_Windows.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Graph_Element.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Graph_Element.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Graph_Element_Sine_Wave.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Graph_Element_Sine_Wave.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Graph_Elem_Image_Album.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Graph_Elem_Image_Album.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Graph_FourierTransform.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Graph_FourierTransform.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Graph_Noise.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Graph_Noise.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Graph_pymunk_2D_Graphics.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Graph_pymunk_2D_Graphics.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Graph_pymunk_Desktop_Balls.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Graph_pymunk_Desktop_Balls.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Hello_World.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Hello_World.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_HowDoI.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_HowDoI.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Image_Elem_Image_Viewer_PIL_Based.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Image_Elem_Image_Viewer_PIL_Based.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Image_Elem_Splash_Screen.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Image_Elem_Splash_Screen.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Img_Viewer.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Img_Viewer.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Input_Auto_Complete.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Input_Auto_Complete.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Input_Validation.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Input_Validation.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Invisible_Elements.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Invisible_Elements.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Invisible_Elements_Pinning.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Invisible_Elements_Pinning.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_IP_Address_Entry.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_IP_Address_Entry.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Keyboard.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Keyboard.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Keyboard_ENTER_Presses_Button.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Keyboard_ENTER_Presses_Button.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Keyboard_Realtime.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Keyboard_Realtime.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Keypad.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Keypad.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Layout_Extend.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Layout_Extend.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Layout_Generation.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Layout_Generation.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Layout_Vertical.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Layout_Vertical.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Layout_Vertical_Centered.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Layout_Vertical_Centered.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_LED_Clock_Weather.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_LED_Clock_Weather.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_LED_Indicators.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_LED_Indicators.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_LED_Indicators_Text_Based.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_LED_Indicators_Text_Based.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Listbox_Search_Filter.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Listbox_Search_Filter.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Look_And_Feel_Theme_Browser.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Look_And_Feel_Theme_Browser.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Look_And_Feel_Theme_Dump.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Look_And_Feel_Theme_Dump.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Machine_Learning.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Machine_Learning.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Main_Control_Test_Panel.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Main_Control_Test_Panel.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Matplotlib.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Matplotlib.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Matplotlib_Animated.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Matplotlib_Animated.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Matplotlib_Animated_Scatter.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Matplotlib_Animated_Scatter.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Matplotlib_Browser.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Matplotlib_Browser.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Matplotlib_Browser_Paned.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Matplotlib_Browser_Paned.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Matplotlib_Embedded_TEMPLATE.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Matplotlib_Embedded_TEMPLATE.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Matplotlib_Embedded_Toolbar.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Matplotlib_Embedded_Toolbar.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Matplotlib_Grid_of_Graphs_Using_PIL.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Matplotlib_Grid_of_Graphs_Using_PIL.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Matplotlib_PyLab.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Matplotlib_PyLab.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Matplotlib_Styles.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Matplotlib_Styles.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Matplotlib_Two_Windows.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Matplotlib_Two_Windows.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Media_Player.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Media_Player.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Media_Player_VLC_Based.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Media_Player_VLC_Based.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Menus.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Menus.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Menu_With_Toolbar.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Menu_With_Toolbar.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Multiline_cprint_Printing.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Multiline_cprint_Printing.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Multiline_Multicolored_Text.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Multiline_Multicolored_Text.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Multiple_Windows_Experimental.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Multiple_Windows_Experimental.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Multithreaded_Animated_Shell_Command.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Multithreaded_Animated_Shell_Command.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Multithreaded_Different_Threads.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Multithreaded_Different_Threads.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Multithreaded_Logging.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Multithreaded_Logging.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Multithreaded_Long_Shell_Operation_Animated.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Multithreaded_Long_Shell_Operation_Animated.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Multithreaded_Long_Tasks.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Multithreaded_Long_Tasks.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Multithreaded_Long_Task_Simple.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Multithreaded_Long_Task_Simple.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Multithreaded_Multiple_Threads.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Multithreaded_Multiple_Threads.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Multithreaded_Write_Event_Value.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Multithreaded_Write_Event_Value.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Multithreaded_Write_Event_Value_MultiWindow.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Multithreaded_Write_Event_Value_MultiWindow.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Nice_Buttons.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Nice_Buttons.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_NonBlocking_Form.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_NonBlocking_Form.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Notification_Window_Alpha_Channel.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Notification_Window_Alpha_Channel.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Notification_Window_Fade_In_Out.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Notification_Window_Fade_In_Out.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_OpenCV.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_OpenCV.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_OpenCV_Webcam.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_OpenCV_Webcam.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Paned_Window.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Paned_Window.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Password_Login.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Password_Login.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Ping_Line_Graph.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Ping_Line_Graph.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Pi_LEDs.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Pi_LEDs.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Pi_Robotics.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Pi_Robotics.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_PNG_Thumbnail_Viewer.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_PNG_Thumbnail_Viewer.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_PNG_Viewer.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_PNG_Viewer.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Pong.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Pong.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Pong_Multiple_Platforms.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Pong_Multiple_Platforms.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Popups.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Popups.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Popup_Custom.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Popup_Custom.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Progress_Meters.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Progress_Meters.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_psutil_Kill_Processes.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_psutil_Kill_Processes.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_psutil_Kill_Python_Processes.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_psutil_Kill_Python_Processes.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_PyCharm_Launcher.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_PyCharm_Launcher.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_PyCharm_Self_Edit.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_PyCharm_Self_Edit.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Pyplot_Bar_Chart.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Pyplot_Bar_Chart.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Pyplot_Bar_Chart2.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Pyplot_Bar_Chart2.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Radio_Buttons_Simulated.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Radio_Buttons_Simulated.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Reddit_Search.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Reddit_Search.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Save_Window_As_Image.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Save_Window_As_Image.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Script_Launcher_ANSI_Color_Output.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Script_Launcher_ANSI_Color_Output.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Script_Launcher_Realtime_Output.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Script_Launcher_Realtime_Output.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Script_Parameters.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Script_Parameters.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Separator_Elements.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Separator_Elements.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Settings_Save_Load.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Settings_Save_Load.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Sort_Visualizer.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Sort_Visualizer.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Spinner_Compound_Element.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Spinner_Compound_Element.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Status_Bar.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Status_Bar.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Stdout.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Stdout.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Sudoku.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Sudoku.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Super_Simple_Form.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Super_Simple_Form.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_System_Tray_GUI_Window_Design_Pattern.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_System_Tray_GUI_Window_Design_Pattern.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_System_Tray_Icon.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_System_Tray_Icon.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_System_Tray_Reminder.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_System_Tray_Reminder.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Table_Element.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Table_Element.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Table_Simulation.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Table_Simulation.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Table_Simulation_Arrow_Keys.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Table_Simulation_Arrow_Keys.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Tabs.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Tabs.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Tabs_Nested.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Tabs_Nested.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Tabs_Simple.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Tabs_Simple.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Theme_Browser.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Theme_Browser.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Theme_Color_Swatches.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Theme_Color_Swatches.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Theme_Previewer_Dark.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Theme_Previewer_Dark.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Timer.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Timer.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Titlebar_Custom_Async.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Titlebar_Custom_Async.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Titlebar_Custom_Dark_Theme.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Titlebar_Custom_Dark_Theme.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Titlebar_Custom_Multiple_Combinations.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Titlebar_Custom_Multiple_Combinations.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Touch_Keyboard.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Touch_Keyboard.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Tree_Element.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Tree_Element.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Turtle.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Turtle.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Unicode_Characters.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Unicode_Characters.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Uno_Card_Game.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Uno_Card_Game.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_User_Settings.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_User_Settings.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_User_Settings_Browse_File_Folder.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_User_Settings_Browse_File_Folder.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_User_Settings_Class_Remember_Input_and_Combo.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_User_Settings_Class_Remember_Input_and_Combo.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_User_Settings_Remember_Input_and_Combo.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_User_Settings_Remember_Input_and_Combo.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Window_Background_Image.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Window_Background_Image.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Window_Disappear.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Window_Disappear.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Window_Open_Multiple_Times.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Window_Open_Multiple_Times.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_Youtube-dl_Frontend.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_Youtube-dl_Frontend.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/Demo_YouTube_Intro.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/Demo_YouTube_Intro.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/ping.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/ping.png) +![https://github.com/PySimpleGUI/PySimpleGUI/blob/master/DemoPrograms/READM.py](https://raw.githubusercontent.com/Chr0nicT/PySimpleGUI/master/DemoPrograms/Markdown_Project/READM.png) diff --git a/readme_creator/markdown input files/5_call_reference.md b/readme_creator/markdown input files/5_call_reference.md index 47bd2003..3e2f89ca 100644 --- a/readme_creator/markdown input files/5_call_reference.md +++ b/readme_creator/markdown input files/5_call_reference.md @@ -2656,11 +2656,15 @@ These versions of the popup functions are here only for backwards compatibility. -## The Test Harness +## The Main Program - Test Harness, Global Settings, Debug Information, Upgrade from GitHub -Used to get SDK help, test the installation, get information about the versions, upgrade from GitHub +Used to get SDK help, test the installation, get information about the versions, upgrade from GitHub. + +You can call main() from your code and then access these other features such as the global settings. You can also directly call these functions. + + @@ -2681,6 +2685,7 @@ Used to get SDK help, test the installation, get information about the versions, + @@ -2696,6 +2701,10 @@ Used to get SDK help, test the installation, get information about the versions, ## User Settings +In addition to user settings files, there is also a global PySimpleGUI settings file. + +You can directly access the global settings through the UserSettings object: `pysimplegui_user_settings` + @@ -2708,6 +2717,18 @@ Used to get SDK help, test the installation, get information about the versions, +## Exec APIs + +These API calls are used to launch subprocesses. + + + + + + + + + ## Misc diff --git a/readme_creator/output/call reference.md b/readme_creator/output/call reference.md index dbcc0dcf..4814e9bb 100644 --- a/readme_creator/output/call reference.md +++ b/readme_creator/output/call reference.md @@ -65,7 +65,7 @@ Parameter Descriptions: | Tuple[Tuple[str, str], ...] | file_types | the filetypes that will be used to match files. To indicate all files: (("ALL Files", "*.*"),). Note - NOT SUPPORTED ON MAC | | str | initial_folder | starting path for folders and files | | str | default_extension | If no extension entered by user, add this to filename (only used in saveas dialogs) | -| bool | disabled | If True button will be created disabled | +| (bool or str) | disabled | If True button will be created disabled. If BUTTON_DISABLED_MEANS_IGNORE then the button will be ignored rather than disabled using tkinger | | bool | change_submits | DO NOT USE. Only listed for backwards compat - Use enable_events instead | | bool | enable_events | Turns on the element specific events. If this button is a target, should it generate an event when filled in | | str | image_filename | image filename if there is a button image. GIFs and PNGs only. | @@ -75,7 +75,7 @@ Parameter Descriptions: | int | border_width | width of border around button in pixels | | (int, int) | size | (width, height) of the button in characters wide, rows high | | bool | auto_size_button | if True the button size is sized to fit the text | -| Tuple[str, str] or str or None | button_color | Color of button. Easy to remember which is which if you say "ON" between colors. "red" on "green". Normally a tuple, but can be a simplified-button-color-string "foreground on background" | +| Tuple[str, str] or str or Tuple[int, int] or None | button_color | Color of button. default is from theme or the window. Easy to remember which is which if you say "ON" between colors. "red" on "green". Normally a tuple, but can be a simplified-button-color-string "foreground on background". Can be a single color if want to set only the background. | | Tuple[str, str] | disabled_button_color | colors to use when button is disabled (text, background). Use None for a color if don't want to change. Only ttk buttons support both text and background colors. tk buttons only support changing text color | | Tuple[str, str] | highlight_colors | colors to use when button has focus (highlight, background). None will use computed colors. Only used by Linux and only for non-TTK button | | bool | use_ttk_buttons | True = use ttk buttons. False = do not use ttk buttons. None (Default) = use ttk buttons only if on a Mac and not with button images | @@ -173,16 +173,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -284,15 +288,15 @@ Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | text | sets button text | -| Tuple[str, str] or (str) | button_color | of button. Easy to remember which is which if you say "ON" between colors. "red" on "green" | -| bool | disabled | disable or enable state of the element | -| bytes or str | image_data | Raw or Base64 representation of the image to put on button. Choose either filename or data | -| str | image_filename | image filename if there is a button image. GIFs and PNGs only. | -| Tuple[str, str] | disabled_button_color | colors to use when button is disabled (text, background). Use None for a color if don't want to change. Only ttk buttons support both text and background colors. tk buttons only support changing text color | -| bool | visible | control visibility of element | -| int | image_subsample | amount to reduce the size of the image. Divides the size by this number. 2=1/2, 3=1/3, 4=1/4, etc | -| (int, int) | image_size | Size of the image in pixels (width, height) | +| str | text | sets button text | +| Tuple[str, str] or str or Tuple[int, int] or None | button_color | Color of button. default is from theme or the window. Easy to remember which is which if you say "ON" between colors. "red" on "green". Normally a tuple, but can be a simplified-button-color-string "foreground on background". Can be a single color if want to set only the background. | +| (bool or str) | disabled | True/False to enable/disable at the GUI level. Use BUTTON_DISABLED_MEANS_IGNORE to ignore clicks (won't change colors) | +| bytes or str | image_data | Raw or Base64 representation of the image to put on button. Choose either filename or data | +| str | image_filename | image filename if there is a button image. GIFs and PNGs only. | +| Tuple[str, str] | disabled_button_color | colors to use when button is disabled (text, background). Use None for a color if don't want to change. Only ttk buttons support both text and background colors. tk buttons only support changing text color | +| bool | visible | control visibility of element | +| int | image_subsample | amount to reduce the size of the image. Divides the size by this number. 2=1/2, 3=1/3, 4=1/4, etc | +| (int, int) | image_size | Size of the image in pixels (width, height) | ### visible @@ -377,15 +381,15 @@ Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | text | sets button text | -| Tuple[str, str] or (str) | button_color | of button. Easy to remember which is which if you say "ON" between colors. "red" on "green" | -| bool | disabled | disable or enable state of the element | -| bytes or str | image_data | Raw or Base64 representation of the image to put on button. Choose either filename or data | -| str | image_filename | image filename if there is a button image. GIFs and PNGs only. | -| Tuple[str, str] | disabled_button_color | colors to use when button is disabled (text, background). Use None for a color if don't want to change. Only ttk buttons support both text and background colors. tk buttons only support changing text color | -| bool | visible | control visibility of element | -| int | image_subsample | amount to reduce the size of the image. Divides the size by this number. 2=1/2, 3=1/3, 4=1/4, etc | -| (int, int) | image_size | Size of the image in pixels (width, height) | +| str | text | sets button text | +| Tuple[str, str] or str or Tuple[int, int] or None | button_color | Color of button. default is from theme or the window. Easy to remember which is which if you say "ON" between colors. "red" on "green". Normally a tuple, but can be a simplified-button-color-string "foreground on background". Can be a single color if want to set only the background. | +| (bool or str) | disabled | True/False to enable/disable at the GUI level. Use BUTTON_DISABLED_MEANS_IGNORE to ignore clicks (won't change colors) | +| bytes or str | image_data | Raw or Base64 representation of the image to put on button. Choose either filename or data | +| str | image_filename | image filename if there is a button image. GIFs and PNGs only. | +| Tuple[str, str] | disabled_button_color | colors to use when button is disabled (text, background). Use None for a color if don't want to change. Only ttk buttons support both text and background colors. tk buttons only support changing text color | +| bool | visible | control visibility of element | +| int | image_subsample | amount to reduce the size of the image. Divides the size by this number. 2=1/2, 3=1/3, 4=1/4, etc | +| (int, int) | image_size | Size of the image in pixels (width, height) | --------- @@ -513,16 +517,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -787,16 +795,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -942,6 +954,7 @@ Checkbox(text, font = None, background_color = None, text_color = None, + checkbox_color = None, change_submits = False, enable_events = False, disabled = False, @@ -964,6 +977,7 @@ Parameter Descriptions: | str or Tuple[str, int] | font | specifies the font family, size, etc | | str | background_color | color of background | | str | text_color | color of the text | +| str | checkbox_color | color of background of the box that has the check mark in it. The checkmark is the same color as the text | | bool | change_submits | DO NOT USE. Only listed for backwards compat - Use enable_events instead | | bool | enable_events | Turns on the element specific events. Checkbox events happen when an item changes | | bool | disabled | set disable state | @@ -1050,16 +1064,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -1137,6 +1155,7 @@ update(value = None, text = None, background_color = None, text_color = None, + checkbox_color = None, disabled = None, visible = None) ``` @@ -1216,6 +1235,7 @@ Update(value = None, text = None, background_color = None, text_color = None, + checkbox_color = None, disabled = None, visible = None) ``` @@ -1374,16 +1394,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -1598,7 +1622,7 @@ Parameter Descriptions: |--|--|--| | List[Any] or Tuple[Any] | values | values to choose. While displayed as text, the items returned are what the caller supplied, not text | | Any | default_value | Choice to be displayed as initial value. Must match one of values variable contents | -| (int, int) (width, height) | size | width = characters-wide, height = rows-high | +| (int, int) | size | width, height. Width = characters-wide, height = NOTE it's the number of entries to show in the list | | bool | auto_size_text | True if element should be the same size as the contents | | str | background_color | color of background | | str | text_color | color of the text | @@ -1651,7 +1675,7 @@ Parameter Descriptions: ### get Returns the current (right now) value of the Combo. DO NOT USE THIS AS THE NORMAL WAY OF READING A COMBO! -You should be using values from your call to window.Read instead. Know what you're doing if you use it. +You should be using values from your call to window.read instead. Know what you're doing if you use it. `get()` @@ -1691,16 +1715,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -1782,7 +1810,8 @@ update(value = None, disabled = None, readonly = None, font = None, - visible = None) + visible = None, + size = (None, None)) ``` Parameter Descriptions: @@ -1796,6 +1825,7 @@ Parameter Descriptions: | bool | readonly | if True make element readonly (user cannot change any choices). Enables the element if either choice are made. | | str or Tuple[str, int] | font | specifies the font family, size, etc | | bool | visible | control visibility of element | +| (int, int) | size | width, height. Width = characters-wide, height = NOTE it's the number of entries to show in the list | ### visible @@ -1816,7 +1846,7 @@ The following methods are here for backwards compatibility reference. You will ### Get Returns the current (right now) value of the Combo. DO NOT USE THIS AS THE NORMAL WAY OF READING A COMBO! -You should be using values from your call to window.Read instead. Know what you're doing if you use it. +You should be using values from your call to window.read instead. Know what you're doing if you use it. `Get()` @@ -1866,7 +1896,8 @@ Update(value = None, disabled = None, readonly = None, font = None, - visible = None) + visible = None, + size = (None, None)) ``` Parameter Descriptions: @@ -1880,6 +1911,7 @@ Parameter Descriptions: | bool | readonly | if True make element readonly (user cannot change any choices). Enables the element if either choice are made. | | str or Tuple[str, int] | font | specifies the font family, size, etc | | bool | visible | control visibility of element | +| (int, int) | size | width, height. Width = characters-wide, height = NOTE it's the number of entries to show in the list | --------- @@ -2026,16 +2058,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -2691,16 +2727,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -3269,16 +3309,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -3494,16 +3538,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -3845,16 +3893,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -3947,7 +3999,8 @@ update(value = None, visible = None, text_color = None, background_color = None, - move_cursor_to = "end") + move_cursor_to = "end", + password_char = None) ``` Parameter Descriptions: @@ -3961,6 +4014,7 @@ Parameter Descriptions: | str | text_color | change color of text being typed | | str | background_color | change color of the background | | int or str | move_cursor_to | Moves the cursor to a particular offset. Defaults to 'end' | +| str | password_char | Password character if this is a password field | ### visible @@ -4027,7 +4081,8 @@ Update(value = None, visible = None, text_color = None, background_color = None, - move_cursor_to = "end") + move_cursor_to = "end", + password_char = None) ``` Parameter Descriptions: @@ -4041,13 +4096,14 @@ Parameter Descriptions: | str | text_color | change color of text being typed | | str | background_color | change color of the background | | int or str | move_cursor_to | Moves the cursor to a particular offset. Defaults to 'end' | +| str | password_char | Password character if this is a password field | --------- ## Listbox Element A List Box. Provide a list of values for the user to choose one or more of. Returns a list of selected rows - when a window.Read() is executed. + when a window.read() is executed. ``` Listbox(values, @@ -4194,16 +4250,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -4260,7 +4320,7 @@ Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| List[Any] | values | new values to choose based on previously set values | +| List[Any] or Tuple[Any] | values | new values to choose based on previously set values | ### set_vscroll_position @@ -4320,7 +4380,7 @@ Parameter Descriptions: | bool | disabled | disable or enable state of the element | | int or list or tuple | set_to_index | highlights the item(s) indicated. If parm is an int one entry will be set. If is a list, then each entry in list is highlighted | | int | scroll_to_index | scroll the listbox so that this index is the first shown | -| str | mode | changes the select mode according to tkinter's listbox widget | +| str | select_mode | changes the select mode according to tkinter's listbox widget | | bool | visible | control visibility of element | ### visible @@ -4399,7 +4459,7 @@ Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| List[Any] | values | new values to choose based on previously set values | +| List[Any] or Tuple[Any] | values | new values to choose based on previously set values | ### Update @@ -4422,7 +4482,7 @@ Parameter Descriptions: | bool | disabled | disable or enable state of the element | | int or list or tuple | set_to_index | highlights the item(s) indicated. If parm is an int one entry will be set. If is a list, then each entry in list is highlighted | | int | scroll_to_index | scroll the listbox so that this index is the first shown | -| str | mode | changes the select mode according to tkinter's listbox widget | +| str | select_mode | changes the select mode according to tkinter's listbox widget | | bool | visible | control visibility of element | --------- @@ -4542,16 +4602,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -4919,16 +4983,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -5163,7 +5231,7 @@ Parameter Descriptions: |--|--|--| | List[Any] or Tuple[Any] | values | Values to be displayed | | Any | default_value | the value to choose by default | -| (int, int) (width, height) | size | size in characters (wide) and rows (high) | +| (int, int) (width, UNUSED) | size | (width, height) size in characters (wide), height is ignored and present to be consistent with other elements | | bool | disabled | control enabled / disabled | | bool | auto_size_text | True if size of Element should match the contents of the items | | str | background_color | color of background | @@ -5241,16 +5309,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -5340,17 +5412,19 @@ Changes some of the settings for the OptionMenu Element. Must call `Window.Read` update(value = None, values = None, disabled = None, - visible = None) + visible = None, + size = (None, None)) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| Any | value | the value to choose by default | -| List[Any] | values | Values to be displayed | -| bool | disabled | disable or enable state of the element | -| bool | visible | control visibility of element | +| Any | value | the value to choose by default | +| List[Any] | values | Values to be displayed | +| bool | disabled | disable or enable state of the element | +| bool | visible | control visibility of element | +| (int, int) (width, UNUSED) | size | (width, height) size in characters (wide), height is ignored and present to be consistent with other elements | ### visible @@ -5404,17 +5478,19 @@ Changes some of the settings for the OptionMenu Element. Must call `Window.Read` Update(value = None, values = None, disabled = None, - visible = None) + visible = None, + size = (None, None)) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| Any | value | the value to choose by default | -| List[Any] | values | Values to be displayed | -| bool | disabled | disable or enable state of the element | -| bool | visible | control visibility of element | +| Any | value | the value to choose by default | +| List[Any] | values | Values to be displayed | +| bool | disabled | disable or enable state of the element | +| bool | visible | control visibility of element | +| (int, int) (width, UNUSED) | size | (width, height) size in characters (wide), height is ignored and present to be consistent with other elements | --------- @@ -5519,16 +5595,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -5820,16 +5900,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -6075,16 +6159,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -6284,6 +6372,7 @@ Radio(text, auto_size_text = None, background_color = None, text_color = None, + circle_color = None, font = None, key = None, k = None, @@ -6307,6 +6396,7 @@ Parameter Descriptions: | bool | auto_size_text | if True will size the element to match the length of the text | | str | background_color | color of background | | str | text_color | color of the text | +| str | circle_color | color of background of the circle that has the dot selection indicator in it | | str or Tuple[str, int] | font | specifies the font family, size, etc | | str or int or tuple or object | key | Used with window.FindElement and with return values to uniquely identify this element | | str or int or tuple or object | k | Same as the Key. You can use either k or key. Which ever is set will be used. | @@ -6401,16 +6491,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -6480,13 +6574,14 @@ unhide_row() ### update -Changes some of the settings for the Radio Button Element. Must call `Window.Read` or `Window.Finalize` prior +Changes some of the settings for the Radio Button Element. Must call `Window.read` or `Window.finalize` prior ``` update(value = None, text = None, background_color = None, text_color = None, + circle_color = None, disabled = None, visible = None) ``` @@ -6499,6 +6594,7 @@ Parameter Descriptions: | str | text | Text to display next to radio button | | str | background_color | color of background | | str | text_color | color of the text. Note this also changes the color of the selection dot | +| str | circle_color | color of background of the circle that has the dot selection indicator in it | | bool | disabled | disable or enable state of the element | | bool | visible | control visibility of element | @@ -6566,13 +6662,14 @@ Parameter Descriptions: ### Update -Changes some of the settings for the Radio Button Element. Must call `Window.Read` or `Window.Finalize` prior +Changes some of the settings for the Radio Button Element. Must call `Window.read` or `Window.finalize` prior ``` Update(value = None, text = None, background_color = None, text_color = None, + circle_color = None, disabled = None, visible = None) ``` @@ -6585,6 +6682,7 @@ Parameter Descriptions: | str | text | Text to display next to radio button | | str | background_color | color of background | | str | text_color | color of the text. Note this also changes the color of the selection dot | +| str | circle_color | color of background of the circle that has the dot selection indicator in it | | bool | disabled | disable or enable state of the element | | bool | visible | control visibility of element | @@ -6610,6 +6708,7 @@ Slider(range = (None, None), font = None, background_color = None, text_color = None, + trough_color = None, key = None, k = None, pad = None, @@ -6629,7 +6728,7 @@ Parameter Descriptions: | str | orientation | 'horizontal' or 'vertical' ('h' or 'v' also work) | | bool | disable_number_display | if True no number will be displayed by the Slider Element | | int | border_width | width of border around element in pixels | -| enum | relief | relief style. RELIEF_RAISED RELIEF_SUNKEN RELIEF_FLAT RELIEF_RIDGE RELIEF_GROOVE RELIEF_SOLID | +| str or None | relief | relief style. Use constants - RELIEF_RAISED RELIEF_SUNKEN RELIEF_FLAT RELIEF_RIDGE RELIEF_GROOVE RELIEF_SOLID | | bool | change_submits | * DEPRICATED DO NOT USE. Use `enable_events` instead | | bool | enable_events | If True then moving the slider will generate an Event | | bool | disabled | set disable state for element | @@ -6637,6 +6736,7 @@ Parameter Descriptions: | str or Tuple[str, int] | font | specifies the font family, size, etc | | str | background_color | color of slider's background | | str | text_color | color of the slider's text | +| str | trough_color | color of the slider's trough | | str or int or tuple or object | key | Value that uniquely identifies this element from all other elements. Used when Finding an element or in return values. Must be unique to the window | | str or int or tuple or object | k | Same as the Key. You can use either k or key. Which ever is set will be used. | | (int, int or (int, int),(int,int) or int,(int,int)) or ((int, int),int) | pad | Amount of padding to put around element (left/right, top/bottom) or ((left, right), (top, bottom)) | @@ -6710,16 +6810,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -6997,16 +7101,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -7294,16 +7402,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -7606,16 +7718,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -7943,16 +8059,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -8264,16 +8384,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -8573,16 +8697,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -8950,16 +9078,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -9294,16 +9426,20 @@ Metadata is an Element property that you can use at any time to hold any value ### set_cursor Sets the cursor for the current Element. +"Cursor" is used in 2 different ways in this call. +For the parameter "cursor" it's actually the mouse pointer. +For the parameter "cursor_color" it's the color of the beam used when typing into an input element ``` -set_cursor(cursor) +set_cursor(cursor = None, cursor_color = None) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| str | cursor | The tkinter cursor name | +| str | cursor | The tkinter cursor name | +| str | cursor_color | color to set the "cursor" to | ### set_focus @@ -10076,6 +10212,8 @@ Parameter Descriptions: Makes a window into a "Modal Window" This means user will not be able to interact with other windows until this one is closed + NOTE - Sorry Mac users - you can't have modal windows.... lobby your tkinter Mac devs + ```python make_modal() ``` @@ -12162,6 +12300,13 @@ Parameter Descriptions: Works like a "print" statement but with windowing options. Routes output to the "Debug Window" +In addition to the normal text and background colors, you can use a "colors" tuple/string +The "colors" or "c" parameter defines both the text and background in a single parm. +It can be a tuple or a single single. Both text and background colors need to be specified +colors -(str, str) or str. A combined text/background color definition in a single parameter +c - Tuple[str, str] - Colors tuple has format (foreground, backgrouned) +c - str - can also be a string of the format "foreground on background" ("white on red") + ``` easy_print(args=*<1 or N object>, size = (None, None), @@ -12175,27 +12320,33 @@ easy_print(args=*<1 or N object>, keep_on_top = False, do_not_reroute_stdout = True, text_color = None, - background_color = None) + background_color = None, + colors = None, + c = None, + erase_all = False) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| Any | *args | stuff to output | -| (int, int) | size | (w,h) w=characters-wide, h=rows-high | -| str | end | end character | -| str | sep | separator character | -| Tuple[int, int] | location | Location of upper left corner of the window | -| str or Tuple[str, int] | font | specifies the font family, size, etc | -| bool | no_titlebar | If True no titlebar will be shown | -| bool | no_button | don't show button | -| bool | grab_anywhere | If True: can grab anywhere to move the window (Default = False) | -| str | background_color | color of background | -| str | text_color | color of the text | -| bool | keep_on_top | If True the window will remain above all current windows | -| Tuple[int, int] | location | Location of upper left corner of the window | -| bool | do_not_reroute_stdout | do not reroute stdout | +| Any | *args | stuff to output | +| (int, int) | size | (w,h) w=characters-wide, h=rows-high | +| str | end | end character | +| str | sep | separator character | +| Tuple[int, int] | location | Location of upper left corner of the window | +| str or Tuple[str, int] | font | specifies the font family, size, etc | +| bool | no_titlebar | If True no titlebar will be shown | +| bool | no_button | don't show button | +| bool | grab_anywhere | If True: can grab anywhere to move the window (Default = False) | +| str | background_color | color of background | +| str | text_color | color of the text | +| bool | keep_on_top | If True the window will remain above all current windows | +| Tuple[int, int] | location | Location of upper left corner of the window | +| bool | do_not_reroute_stdout | do not reroute stdout | +| str) or Tuple[str, str] | colors | Either a tuple or a string that has both the text and background colors | +| str) or Tuple[str, str] | c | Either a tuple or a string that has both the text and background colors | +| bool | erase_all | If True when erase the output before printing | Close a previously opened EasyPrint window @@ -12205,6 +12356,13 @@ easy_print_close() Works like a "print" statement but with windowing options. Routes output to the "Debug Window" +In addition to the normal text and background colors, you can use a "colors" tuple/string +The "colors" or "c" parameter defines both the text and background in a single parm. +It can be a tuple or a single single. Both text and background colors need to be specified +colors -(str, str) or str. A combined text/background color definition in a single parameter +c - Tuple[str, str] - Colors tuple has format (foreground, backgrouned) +c - str - can also be a string of the format "foreground on background" ("white on red") + ``` eprint(args=*<1 or N object>, size = (None, None), @@ -12218,30 +12376,43 @@ eprint(args=*<1 or N object>, keep_on_top = False, do_not_reroute_stdout = True, text_color = None, - background_color = None) + background_color = None, + colors = None, + c = None, + erase_all = False) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| Any | *args | stuff to output | -| (int, int) | size | (w,h) w=characters-wide, h=rows-high | -| str | end | end character | -| str | sep | separator character | -| Tuple[int, int] | location | Location of upper left corner of the window | -| str or Tuple[str, int] | font | specifies the font family, size, etc | -| bool | no_titlebar | If True no titlebar will be shown | -| bool | no_button | don't show button | -| bool | grab_anywhere | If True: can grab anywhere to move the window (Default = False) | -| str | background_color | color of background | -| str | text_color | color of the text | -| bool | keep_on_top | If True the window will remain above all current windows | -| Tuple[int, int] | location | Location of upper left corner of the window | -| bool | do_not_reroute_stdout | do not reroute stdout | +| Any | *args | stuff to output | +| (int, int) | size | (w,h) w=characters-wide, h=rows-high | +| str | end | end character | +| str | sep | separator character | +| Tuple[int, int] | location | Location of upper left corner of the window | +| str or Tuple[str, int] | font | specifies the font family, size, etc | +| bool | no_titlebar | If True no titlebar will be shown | +| bool | no_button | don't show button | +| bool | grab_anywhere | If True: can grab anywhere to move the window (Default = False) | +| str | background_color | color of background | +| str | text_color | color of the text | +| bool | keep_on_top | If True the window will remain above all current windows | +| Tuple[int, int] | location | Location of upper left corner of the window | +| bool | do_not_reroute_stdout | do not reroute stdout | +| str) or Tuple[str, str] | colors | Either a tuple or a string that has both the text and background colors | +| str) or Tuple[str, str] | c | Either a tuple or a string that has both the text and background colors | +| bool | erase_all | If True when erase the output before printing | Works like a "print" statement but with windowing options. Routes output to the "Debug Window" +In addition to the normal text and background colors, you can use a "colors" tuple/string +The "colors" or "c" parameter defines both the text and background in a single parm. +It can be a tuple or a single single. Both text and background colors need to be specified +colors -(str, str) or str. A combined text/background color definition in a single parameter +c - Tuple[str, str] - Colors tuple has format (foreground, backgrouned) +c - str - can also be a string of the format "foreground on background" ("white on red") + ``` EasyPrint(args=*<1 or N object>, size = (None, None), @@ -12255,27 +12426,33 @@ EasyPrint(args=*<1 or N object>, keep_on_top = False, do_not_reroute_stdout = True, text_color = None, - background_color = None) + background_color = None, + colors = None, + c = None, + erase_all = False) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| Any | *args | stuff to output | -| (int, int) | size | (w,h) w=characters-wide, h=rows-high | -| str | end | end character | -| str | sep | separator character | -| Tuple[int, int] | location | Location of upper left corner of the window | -| str or Tuple[str, int] | font | specifies the font family, size, etc | -| bool | no_titlebar | If True no titlebar will be shown | -| bool | no_button | don't show button | -| bool | grab_anywhere | If True: can grab anywhere to move the window (Default = False) | -| str | background_color | color of background | -| str | text_color | color of the text | -| bool | keep_on_top | If True the window will remain above all current windows | -| Tuple[int, int] | location | Location of upper left corner of the window | -| bool | do_not_reroute_stdout | do not reroute stdout | +| Any | *args | stuff to output | +| (int, int) | size | (w,h) w=characters-wide, h=rows-high | +| str | end | end character | +| str | sep | separator character | +| Tuple[int, int] | location | Location of upper left corner of the window | +| str or Tuple[str, int] | font | specifies the font family, size, etc | +| bool | no_titlebar | If True no titlebar will be shown | +| bool | no_button | don't show button | +| bool | grab_anywhere | If True: can grab anywhere to move the window (Default = False) | +| str | background_color | color of background | +| str | text_color | color of the text | +| bool | keep_on_top | If True the window will remain above all current windows | +| Tuple[int, int] | location | Location of upper left corner of the window | +| bool | do_not_reroute_stdout | do not reroute stdout | +| str) or Tuple[str, str] | colors | Either a tuple or a string that has both the text and background colors | +| str) or Tuple[str, str] | c | Either a tuple or a string that has both the text and background colors | +| bool | erase_all | If True when erase the output before printing | Close a previously opened EasyPrint window @@ -12285,6 +12462,13 @@ EasyPrintClose() Works like a "print" statement but with windowing options. Routes output to the "Debug Window" +In addition to the normal text and background colors, you can use a "colors" tuple/string +The "colors" or "c" parameter defines both the text and background in a single parm. +It can be a tuple or a single single. Both text and background colors need to be specified +colors -(str, str) or str. A combined text/background color definition in a single parameter +c - Tuple[str, str] - Colors tuple has format (foreground, backgrouned) +c - str - can also be a string of the format "foreground on background" ("white on red") + ``` Print(args=*<1 or N object>, size = (None, None), @@ -12298,27 +12482,33 @@ Print(args=*<1 or N object>, keep_on_top = False, do_not_reroute_stdout = True, text_color = None, - background_color = None) + background_color = None, + colors = None, + c = None, + erase_all = False) ``` Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| Any | *args | stuff to output | -| (int, int) | size | (w,h) w=characters-wide, h=rows-high | -| str | end | end character | -| str | sep | separator character | -| Tuple[int, int] | location | Location of upper left corner of the window | -| str or Tuple[str, int] | font | specifies the font family, size, etc | -| bool | no_titlebar | If True no titlebar will be shown | -| bool | no_button | don't show button | -| bool | grab_anywhere | If True: can grab anywhere to move the window (Default = False) | -| str | background_color | color of background | -| str | text_color | color of the text | -| bool | keep_on_top | If True the window will remain above all current windows | -| Tuple[int, int] | location | Location of upper left corner of the window | -| bool | do_not_reroute_stdout | do not reroute stdout | +| Any | *args | stuff to output | +| (int, int) | size | (w,h) w=characters-wide, h=rows-high | +| str | end | end character | +| str | sep | separator character | +| Tuple[int, int] | location | Location of upper left corner of the window | +| str or Tuple[str, int] | font | specifies the font family, size, etc | +| bool | no_titlebar | If True no titlebar will be shown | +| bool | no_button | don't show button | +| bool | grab_anywhere | If True: can grab anywhere to move the window (Default = False) | +| str | background_color | color of background | +| str | text_color | color of the text | +| bool | keep_on_top | If True the window will remain above all current windows | +| Tuple[int, int] | location | Location of upper left corner of the window | +| bool | do_not_reroute_stdout | do not reroute stdout | +| str) or Tuple[str, str] | colors | Either a tuple or a string that has both the text and background colors | +| str) or Tuple[str, str] | c | Either a tuple or a string that has both the text and background colors | +| bool | erase_all | If True when erase the output before printing | Close a previously opened EasyPrint window @@ -14485,9 +14675,11 @@ Parameter Descriptions: | Any | obj | The object to display | | (str) | **RETURN** | Formatted output of the object's values -## The Test Harness +## The Main Program - Test Harness, Global Settings, Debug Information, Upgrade from GitHub -Used to get SDK help, test the installation, get information about the versions, upgrade from GitHub +Used to get SDK help, test the installation, get information about the versions, upgrade from GitHub. + +You can call main() from your code and then access these other features such as the global settings. You can also directly call these functions. The PySimpleGUI "Test Harness". This is meant to be a super-quick test of the Elements. @@ -14495,6 +14687,33 @@ The PySimpleGUI "Test Harness". This is meant to be a super-quick test of the E main() ``` +Collect up and display the data needed to file GitHub issues. +This function will place the information on the clipboard. +You MUST paste the information from the clipboard prior to existing your application. + +``` +main_get_debug_data(suppress_popup = False) +``` + +Parameter Descriptions: + +|Type|Name|Meaning| +|--|--|--| +| bool | suppress_popup | If True no popup window will be shown. The string will be only returned, not displayed | + +Window to set settings that will be used across all PySimpleGUI programs that choose to use them. +Use set_options to set the path to the folder for all PySimpleGUI settings. + +``` +main_global_pysimplegui_settings() +``` + +Parameter Descriptions: + +|Type|Name|Meaning| +|--|--|--| +| (bool) | **RETURN** | True if settings were changed + Display a window that will display the docstrings for each PySimpleGUI Element and the Window object ``` @@ -14589,7 +14808,7 @@ Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| (str) | **RETURN** | (int) - border width currently in use +| (int) | **RETURN** | border width currently in use Sets/Returns the button color currently in use @@ -14601,7 +14820,7 @@ Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| (str) | **RETURN** | Tuple[str, str] - TUPLE with color strings of the button color currently in use (button text color, button background color) +| Tuple[str, str] | **RETURN** | Tuple[str, str] - TUPLE with color strings of the button color currently in use (button text color, button background color) Sets/Returns the background color currently in use for all elements except containers @@ -14625,7 +14844,20 @@ Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| (str) | **RETURN** | (str) - color string currently in use +| (str) | **RETURN** | color string currently in use + +Sets / Gets the global PySimpleGUI Theme. If none is specified then returns the global theme from user settings + +``` +theme_global(new_theme = None) +``` + +Parameter Descriptions: + +|Type|Name|Meaning| +|--|--|--| +| str | new_theme | the new theme name to use | +| (str) | **RETURN** | the currently selected theme Sets/Returns the input element background color currently in use @@ -14661,7 +14893,7 @@ Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| List[str] | **RETURN** | List[str] - A sorted list of the currently available color themes +| List[str] | **RETURN** | A sorted list of the currently available color themes Displays a "Quick Reference Window" showing all of the different Look and Feel settings that are available. They are sorted alphabetically. The legacy color names are mixed in, but otherwise they are sorted into Dark and Light halves @@ -14702,7 +14934,7 @@ Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| (str) | **RETURN** | (int) - border width currently in use +| (int) | **RETURN** | border width currently in use for progress meters Sets/Returns the progress bar colors by the current color theme @@ -14714,7 +14946,7 @@ Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| (str) | **RETURN** | Tuple[str, str] - TUPLE with color strings of the ProgressBar color currently in use(button text color, button background color) +| Tuple[str, str] | **RETURN** | Tuple[str, str] - TUPLE with color strings of the ProgressBar color currently in use(button text color, button background color) Sets/Returns the slider border width currently in use @@ -14726,7 +14958,7 @@ Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| (str) | **RETURN** | (int) - border width currently in use +| (int) | **RETURN** | border width currently in use for sliders Sets/Returns the slider color (used for sliders) @@ -14738,7 +14970,7 @@ Parameter Descriptions: |Type|Name|Meaning| |--|--|--| -| (str) | **RETURN** | (str) - color string of the slider color currently in use +| (str) | **RETURN** | color string of the slider color currently in use Sets/Returns the text color currently in use @@ -14766,6 +14998,10 @@ Parameter Descriptions: ## User Settings +In addition to user settings files, there is also a global PySimpleGUI settings file. + +You can directly access the global settings through the UserSettings object: `pysimplegui_user_settings` + Returns the current settings dictionary. If you've not setup the filename for the settings, a default one will be used and then read. @@ -14936,6 +15172,104 @@ Parameter Descriptions: |--|--|--| | dict | settings_dict | The dictionary to be written to the currently defined settings file | +## Exec APIs + +These API calls are used to launch subprocesses. + +Runs the specified command as a subprocess. +By default the call is non-blocking. +The function will immediately return without waiting for the process to complete running. You can use the returned Popen object to communicate with the subprocess and get the results. +Returns a subprocess Popen object. + +``` +execute_command_subprocess(command, + args=*<1 or N object>, + wait = False, + cwd = None) +``` + +Parameter Descriptions: + +|Type|Name|Meaning| +|--|--|--| +| str | command | Filename to load settings from (and save to in the future) | +| Any | *args | Variable number of arguments that are passed to the program being started as command line parms | +| bool | wait | If True then wait for the subprocess to finish | +| str | cwd | Working directory to use when executing the subprocess | +| (subprocess.Popen) | **RETURN** | Popen object + +Runs the editor that was configured in the global settings and opens the file to a specific line number. +Two global settings keys are used. +'-editor program-' the command line used to startup your editor. It's set +in the global settings window or by directly manipulating the PySimpleGUI settings object +'-editor format string-' a string containing 3 "tokens" that describes the command that is executed + + +``` +execute_editor(file_to_edit, line_number = None) +``` + +Parameter Descriptions: + +|Type|Name|Meaning| +|--|--|--| +| str | file_to_edit | the full path to the file to edit | +| int | line_number | optional line number to place the cursor | +| (subprocess.Popen) or None | **RETURN** | Popen object + +The global settings has a setting called - "-explorer program-" +It defines the program to run when this function is called. +The optional folder paramter specified which path should be opened. + +``` +execute_file_explorer(folder_to_open = "") +``` + +Parameter Descriptions: + +|Type|Name|Meaning| +|--|--|--| +| str | folder_to_open | The path to open in the explorer program | +| (subprocess.Popen) or None | **RETURN** | Popen object + +Get the text results of a previously executed execute call +Returns a tuple of the strings (stdout, stderr) + +``` +execute_get_results(subprocess_id) +``` + +Parameter Descriptions: + +|Type|Name|Meaning| +|--|--|--| +| (subprocess.Popen) | subprocess_id | a Popen subprocess ID returned from a previous execute call | + +Executes a Python file. +The interpreter to use is chosen based on this priority order: +1. interpreter_command paramter +2. global setting "-python command-" +3. the interpreter running running PySimpleGUI + +``` +execute_py_file(pyfile, + parms = None, + cwd = None, + interpreter_command = None, + wait = False) +``` + +Parameter Descriptions: + +|Type|Name|Meaning| +|--|--|--| +| str | pyfile | the file to run | +| | parms | parameters to pass on the command line | +| | cwd | the working directory to use | +| | interpreter_command | the command used to invoke the Python interpreter | +| | wait | the working directory to use | +| (subprocess.Popen) or None | **RETURN** | Popen object + ## Misc Fills a window with values provided in a values dictionary { element_key : new_value } @@ -15109,8 +15443,8 @@ Parameter Descriptions: | bool | auto_size_buttons | True if Buttons in this Window should be sized to exactly fit the text on this. | | str or Tuple[str, int] | font | specifies the font family, size, etc | | int | border_width | width of border around element | -| ??? | slider_border_width | ??? | -| ??? | slider_relief | ??? | +| int | slider_border_width | Width of the border around sliders | +| str | slider_relief | Type of relief to use for sliders | | ??? | slider_orientation | ??? | | ??? | autoclose_time | ??? | | ??? | message_box_line_width | ??? | @@ -15123,13 +15457,13 @@ Parameter Descriptions: | str | background_color | color of background | | str | element_background_color | element background color | | str | text_element_background_color | text element background color | -| idk_yetReally | input_elements_background_color | ??? | -| ??? | input_text_color | ??? | -| ??? | scrollbar_color | ??? | +| str | input_elements_background_color | Default color to use for the background of input elements | +| str | input_text_color | Default color to use for the text for Input elements | +| str | scrollbar_color | Default color to use for the slider trough | | str | text_color | color of the text | -| ??? | element_text_color | ??? | +| str | element_text_color | Default color to use for Text elements | | Tuple[int, int] | debug_win_size | window size | -| ??? | window_location | (Default = (None)) | +| Tuple[int, int] or None | window_location | Default location to place windows. Not setting will center windows on the display | | ??? | error_button_color | (Default = (None)) | | int | tooltip_time | time in milliseconds to wait before showing a tooltip. Default is 400ms | | str or Tuple[str, int] or Tuple[str, int, str] | tooltip_font | font to use for all tooltips | @@ -15232,8 +15566,8 @@ Parameter Descriptions: | bool | auto_size_buttons | True if Buttons in this Window should be sized to exactly fit the text on this. | | str or Tuple[str, int] | font | specifies the font family, size, etc | | int | border_width | width of border around element | -| ??? | slider_border_width | ??? | -| ??? | slider_relief | ??? | +| int | slider_border_width | Width of the border around sliders | +| str | slider_relief | Type of relief to use for sliders | | ??? | slider_orientation | ??? | | ??? | autoclose_time | ??? | | ??? | message_box_line_width | ??? | @@ -15246,13 +15580,13 @@ Parameter Descriptions: | str | background_color | color of background | | str | element_background_color | element background color | | str | text_element_background_color | text element background color | -| idk_yetReally | input_elements_background_color | ??? | -| ??? | input_text_color | ??? | -| ??? | scrollbar_color | ??? | +| str | input_elements_background_color | Default color to use for the background of input elements | +| str | input_text_color | Default color to use for the text for Input elements | +| str | scrollbar_color | Default color to use for the slider trough | | str | text_color | color of the text | -| ??? | element_text_color | ??? | +| str | element_text_color | Default color to use for Text elements | | Tuple[int, int] | debug_win_size | window size | -| ??? | window_location | (Default = (None)) | +| Tuple[int, int] or None | window_location | Default location to place windows. Not setting will center windows on the display | | ??? | error_button_color | (Default = (None)) | | int | tooltip_time | time in milliseconds to wait before showing a tooltip. Default is 400ms | | str or Tuple[str, int] or Tuple[str, int, str] | tooltip_font | font to use for all tooltips |