From 66931d51e1a06797381d3c32c2b1a4400c033357 Mon Sep 17 00:00:00 2001 From: PySimpleGUI Date: Sun, 8 May 2022 12:50:09 -0400 Subject: [PATCH] Release 4.60.0 --- PySimpleGUI.py | 158 ++---------------- docs/call reference.md | 54 ++++++ docs/index.md | 83 +++++++++ .../markdown input files/4_Release_notes.md | 84 ++++++++++ .../markdown input files/5_call_reference.md | 7 + readme_creator/output/call reference.md | 54 ++++++ readme_creator/output/index.md | 83 +++++++++ 7 files changed, 376 insertions(+), 147 deletions(-) diff --git a/PySimpleGUI.py b/PySimpleGUI.py index f175c8a8..c89076cf 100644 --- a/PySimpleGUI.py +++ b/PySimpleGUI.py @@ -1,154 +1,10 @@ #!/usr/bin/python3 -version = __version__ = "4.59.0.45 Released 5-Apr-2022" +version = __version__ = "4.60.0 Released 8-May-2022" _change_log = """ - Changelog since 4.59.0 released to PyPI on 5-Apr-2022 - - 4.59.0.1 - Addition of the blocking parameter to the Print function. Enables using Print through an entire program with the last - Print call setting the blocking parameter so that the window doesn't close until user interacts with the Debug Output Window - 4.59.0.2 - Added SUPPRESS_WIDGET_NOT_FINALIZED_WARNINGS as a way to turn off checking for widgets to be finalized. Needed to get around some race conditions. - It's possible (likely) that a debug window is closed while printing to the debug window. This would normally generate an error. Use this flag to - turn off this error checking temporarily - 4.59.0.3 - NEW ttk scrollbars added to Multiline, Listbox, Table and Tree - Tree element - added new horizontal scrollbar (also uses the new ttk scrollbar) - Parameters added to Mulitline, Listbox, Table and Tree to control the scrollbar styling - NOTE - the positioning methods have not been tested for the new ttk scrollbars. They are being releaseed just to get some feedback on the look of these scrollbars - 4.59.0.4 - New Window screencapture that uses PIL if you've got PIL installed. - It does NOT require PIL be installed in order to use PySimpleGUI. ONLY when a capture is attempted does PySimpleGUI try to import PIL - It's the first step of building the larger "Catalog" feature - The alignment is not perfect and the whole thing needs more work - The keystrokes used to perform the cpature, the locatoin the file is stored and the filename are al in the PySimpleGUI global settings - The auto-numbering freature is not yet implemented. Only 1 file is used and is overwritten if exists - 4.59.0.5 - Fixed the font and sizing of the "Editor Settings" section - Niocer abnner at the top of the window - 4.59.0.6 - Added exception handing to the bind methods - 4.59.0.7 - More exception handling - 4.59.0.8 - New Debug Print capability - The "Pause/Resume" option enables printing to be paused. This will block the caller - Added ability to control use of Custom Titlebar from the system settings. Turn on Customer Titlebar setting in the - Global System Settings and that will cause all windows to automatically use a custom titlebar and custom menubar - New theme call to determine if a custom titlebar shoue be used - theme_use_custom_titlebar returns True if should use one - Main test harness - Fixed freeing up the graphic lines being drawn as they scrolled off the screen. Now as each lines if scrolled off the screen, tit is feed up - Window is not modal so can interact the debug Print window - Grab anywhere turned off - Remember can always use CONTROL + LEFT CLICK & DRAG to move ANY PySimpleGUI as if grab anywhere is enabled - 4.59.0.9 - Made the save window as image into a Window method - Window.save_window_screenshot_to_disk - Show a popup message when a window save is performed using the keys specified in the system settings - Debug Print still has some problems so be warned for the time being... it's being worked on... - 4.59.0.10 - Ugh .... terrible ttk theme bug! Sorry!!! - 4.59.0.11 - Improved TTK theme error reporting - 4.59.0.12 - user_settings_delete_filename - added report_error parm giving ability to turn off the error popup (now off by default). The UserSettings object also got this parm - Big rework is in progress for the global settings. Converted to entirely use TABS now. It's getting closer!!! Can almost taste the new tastey ttk scrollbars - 4.59.0.13 - theme_global - added error checking and reporting about non-standard theme names being attempted - Dark Grey 15 - NEW theme! (inspired by the theme_global issue :-) - 4.59.0.14 - Made default TTK scrollbar width 12 pixels instead of 10. They're still smaller than the old tk scrollbars that are about 17 pixels wide - Removed the "Thumb Color" and "Thumb Depressed" ttk slider parms... it's not a settable option generally speaking so it had to go. - Two new theme calls - theme_button_color_background and theme_button_color_text. They are read-only calls and are simply the button color (theme_button_color) TUPLE split apart - Completed the first draft of the TTK Scrollbar settings in the Global settings window... was a LOT more work than I estimated! - 4.59.0.15 - TTK Theme added to the System Settings :-) - Made the ttk scrollbar settings tab look nicer - 4.59.0.16 - Added button to test ttk scrollbar settings within the System Settings window. Aids in changing the design if scrollbar colors, sizes, etc. - 4.59.0.17 - Noted tricky problem - if "always use custom titlebar" is set in system settings, then USER still needs to account for this in their layout - That means using the MenubarCustom instaed of Menu. For now, user will have to handle this. Will come back to it to fix up later - Made MenubarCustom have a pad=0 by default so that it's snug under the titlebar and extends to edges correctly. - Renamed ttk scrollbar system settings tab to ttk - 4.59.0.18 - Got the Debug Print stuff working right! YES! - Added new parm "wait" which is an alias for the "blocking" parm. Some may like it better. Take your choice - Changed button text to "Click to continue" if the blocking/wait parm is set so that it's obvious that your program is waiting on you - 4.59.0.19 - OK... this time got the Debug Print stuff working right for real! YES? ;-) - 4.59.0.20 - irony - when you accidently leave debug prints in your debug print code - 4.59.0.21 - Additional exception handling needed for debug window closure at any point - 4.59.0.22 - "Ding-dong the Output's dead" - finally replaced the Output element with Multiline by subclassing Multiline - This solves a bunch of problems including duplication of funcationality using 2 different techniques. - Problem may be in backward compatibility if anyone is using internal Output element member variables, etc. - 4.59.0.23 - Changed the popup errors for Tabs to be popup error with traceback. Much nicer experience with this newer error popup - Removed Output Element from the packer function... you know it's really gone when it's not in there - To be clear, there still is an Output Element... it's just a Multiline in disguise now. - 4.59.0.24 - Support for the GrayGrayGray theme with the new ttk scrollbars... for those that like the grayscale world, you're now safe - 4.59.0.25 - Fix for systems that don't yet have the ttk scrollbars set up. Was getting the incorrect defaults (they were all blank) - 4.59.0.26 - Debug window - betting re-opening code so that the data is not missed from being printed - 4.59.0.27 - ttk scrollbar support for Column element - was really hacked in to get things to work. Next step is a little cleanup but want to - first simply make sure it's working. Changes were limited to the scrollable column class (which was the scene of the hack-crime too) - 4.59.0.28 - fixed the Column.update call! Missed the renaming of the ExpandX to expand_x in that function. Sorry if you hit it! - 4.59.0.29 - Added parms and docstrings to all elements with ttk scrollbars - Needed to remove the "arrow background color" option for ttk scrollbars. You can't set that color directly it turns out... so one less parm now - 4.59.0.30 - Get ttk themes available from ttk rather than the hard coded list. This is used in the Global Settings window. - 4.59.0.31 - Fixed default ttk theme bug - was being changed when a window set a theme just for 1 window. The overall default shouldn't change for this situation - Added support for the heirarchical specification of ttk scrollbars. The settings will be picked up in this order: - Element, Window, Set Options, Global Settings - 4.59.0.32 - Add the ttk theme list AFTER the global options window is created. This "fix" is only needed when a user calls the global options window directly. - If don't do this, the tkinter will create a weird temp window if you call to get the list of ttk themes (gee.... thanks ttk!) - An alternate method would be to do the same thing as measuring the screensize where the hidden master window is created to pull it off. - Since this is the only place the theme list is retrieved, for now will do the update of the list after the window is created. This features is - already taking forever... (insert eyeroll emoji here) - Removed "Use TTK Scrollbars" checkbox in global settings... you're getting TTK scrollbars whether you like it or not ;-) - Prettied up the ttk settings tab in global settings - 4.59.0.33 - New Column element parameters - size_subsample_width & size_subsample_height - Gives much more control over the sizing of SCROLLABLE columns. Previously the size was set to 1/2 the required height and the full required width. - The defaults are backward compatible (size_subsample_width=1, size_subsample_height=2) - Setting both to 1 will make the Column fit the contents exactly. - One use is when you expect your Column to grow or shrink over time. Or maybe you didn't like the 1/2 size that PySimpleGUI has always used before. - Hoping this isn't too complex to understand! - 4.59.0.34 - Fix crash in Element.bind... likely created in version 4.59.0.6. - Crashes because Elements don't have the method _is_window_created which was being called. YIKES! - 4.59.0.35 - New coupon - 4.59.0.36 - Made selected text color for Input, Combo and Multiline match the color theme! (THANK YOU JASON!) - 4.59.0.37 - Added back the filetypes parameter availability for the mac for the file browse operations. Was previously (incorrectly evidently!) removed for FileBrowse operations - (Thank you resnbl for all the help!) - 4.59.0.38 - Combo element finally gets drop-down list formatting (thank you Jason!) - 4.59.0.39 - Reworked sg.main test harness to recover space to fit on smaller screens - Make upgrade from github Multiline smaller to fit the Pi screen - 4.59.0.40 - Auto-correct file_types problems for Browse buttons. Automatically change the formatting from (str, str) to ((str, str),) and warn the user - 4.59.0.41 - Docstring typo fixes for file_types parm - 4.59.0.42 - FileBrowse - giving a series of try blocks a try to see if can get around the Mac file_types issue - 4.59.0.43 - Hi-Ho-Hi-Ho... it's back to no file_type on the Mac we go... Need to add similar code to popup_get_file to ensure doesn't crash there too. - 4.59.0.44 - Fix in popup_get_file for the file_type parameter that crashes on the Mac. Like the Browse button, the file_type parameter is disabled for the Mac. VERY sorry Mac users - 4.59.0.45 - Fix for Scrollable Columns that expand. Needed to switch to using the canvas, not the frame, for scrolling (THANK YOU Jason and milahu!) + Changelog since 4.60.0 released to PyPI on 8-May-2022 + """ __version__ = version.split()[0] # For PEP 396 and PEP 345 @@ -18961,6 +18817,14 @@ def theme_add_new(new_theme_name, new_theme_dict): def theme_use_custom_titlebar(): + """ + Returns True if a custom titlebar will be / should be used. + The setting is in the Global Settings window and can be overwridden + using set_options call + + :return: True if a custom titlebar / custom menubar should be used + :rtype: (bool) + """ if USE_CUSTOM_TITLEBAR is False: return False diff --git a/docs/call reference.md b/docs/call reference.md index 710af939..898e542a 100644 --- a/docs/call reference.md +++ b/docs/call reference.md @@ -13632,6 +13632,20 @@ Parameter Descriptions: |--|--|--| | str | filename | Filename to save the values to in pickled form | +### save_window_screenshot_to_disk + +Saves an image of the PySimpleGUI window provided into the filename provided + +``` +save_window_screenshot_to_disk(filename = None) +``` + +Parameter Descriptions: + +|Type|Name|Meaning| +|--|--|--| +| (PIL.ImageGrab or None) | **RETURN** | A PIL ImageGrab object that can be saved or manipulated + ### send_to_back Pushes this window to the bottom of the stack of windows. It is the opposite of BringToFront @@ -18689,6 +18703,32 @@ Parameter Descriptions: |--|--|--| | (str, str) | **RETURN** | (str, str) - TUPLE with color strings of the button color currently in use (button text color, button background color) +Returns the button color background currently in use. Note this function simple calls the theme_button_color +function and splits apart the tuple + +``` +theme_button_color_background() +``` + +Parameter Descriptions: + +|Type|Name|Meaning| +|--|--|--| +| (str) | **RETURN** | color string of the button color background currently in use + +Returns the button color text currently in use. Note this function simple calls the theme_button_color +function and splits apart the tuple + +``` +theme_button_color_text() +``` + +Parameter Descriptions: + +|Type|Name|Meaning| +|--|--|--| +| (str) | **RETURN** | color string of the button color text currently in use + Sets/Returns the background color currently in use for all elements except containers ``` @@ -18864,6 +18904,20 @@ Parameter Descriptions: |--|--|--| | (str) | **RETURN** | (str) - color string of the text background color currently in use +Returns True if a custom titlebar will be / should be used. +The setting is in the Global Settings window and can be overwridden +using set_options call + +``` +theme_use_custom_titlebar() +``` + +Parameter Descriptions: + +|Type|Name|Meaning| +|--|--|--| +| (bool) | **RETURN** | True if a custom titlebar / custom menubar should be used + -------------------- ## Platform Checks diff --git a/docs/index.md b/docs/index.md index 5dff9f08..132e4406 100644 --- a/docs/index.md +++ b/docs/index.md @@ -10081,6 +10081,89 @@ Test harness forces all windows to be modal and is no longer keep-on-top - Set the main window `keep_on_top=False`. Ensures that all windows created by it should never be hidden. This is a somewhat experimental change. Let's hope for the best! - Forced all windows except for 1 non-modal popup to be modal. This also should ensure no windows are "lost" behind the main window +## 4.60.0 PySimpleGUI 8-May-2022 + +TTK Scrollbars... the carpet now matches the drapes +Debug Window improvements +Built-in Screen-capture Initial Release +Test Harness and Settings Windows fit on small screens better + +* Debug Window + * Added the `wait` and `blocking` parameters (they are identical) + * Setting to `True` will make the `Print` call wait for a user to press a `Click To Continue...` button + * Example use - if you want to print right before exiting your program + * Added `Pause` button + * If clicked, the `Print` will not return until user presses `Resume` + * Good for programs that are outputting information quickly and you want to pause execution so you can read the output +* TTK + * TTK Theme added to the PySimpleGUI Global Settings Window + * Theme list is retrieved from tkinter now rather than hard coded + * TTK Scrollbars + * All Scrollbars have been replaced with TTK Scrollbars + * Scrollbars now match the PySimpleGUI theme colors + * Can indicate default settings in the PySimpleGUI Global Settings Window + * Can preview the settings in the Global Settings Window + * Scrollbars settings are defined in this priority order: + * The Element's creation in your layout + * The Window's creation + * Calling `set_options` + * The defaults in the PySimpleGUI Global Settings + * The TTK Theme can change the appearance of scrollbars as well + * Impacted Elements: + * `Multiline` + * `Listbox` + * `Table` + * `Tree` + * `Output` + * Tree Element gets horizontal scrollbar setting + * `sg.main()` Test Harness + * Restructured the `main()` Test Harness to be more compact. Now fits Pi screens better. + * Made not modal so can interact with the Debug Window + * Turned off Grab Anywhere (note you can always use Control+Drag to move any PySimpleGUI window) + * Freed up graph lines as they scroll off the screen for better memory management + * Made the upgrade from GitHub status window smaller to fit small screens better + * Global Settings + * Restructured the Global Settings window to be tabbed + * Added ability to control Custom Titlebar. Set here and all of your applications will use this setting for the Titlebar and Menubar + * TTK Theme can be specified in the global settings (already mentioned above) + * New section for the Screenshot feature + * Exception handling added to `bind` methods + * Screenshots + * First / early release of a built-in screenshot feature + * Requires that PIL be installed on your system + * New `Window` method `save_window_screenshot_to_disk` + * Global Settings allows definition of a hotkey that triggers a save + * Popup is shown when hotkeys are used + * **To be clear** - PIL does not need to be installed in order to use PySimpleGUI. ONLY when a capture is attempted does PySimpleGUI try to import PIL + * It's the first step of building the larger "Gallery" feature + * The alignment is not perfect and the whole thing needs more work + * The auto-numbering freature is not yet implemented. Only 1 file is used and is overwritten if exists +* `user_settings_delete_filename` got a new parm `report_error` (off by default). The `UserSettings` object also got this parm to help control error reporting +* Themes (PySimpleGUI Themes) + * `theme_global` - added error checking and reporting should non-strandard theme names be attempted with this call + * New theme `Dark Grey 15`. Give it a try! + * New theme `Python Plus` - a more saturated blue and yellow colors. Give it a try! + * New function - `theme_button_color_background` - read-only call that returns the button background color. Previously only available as a tuple using `theme_button_color`. + * New function - `theme_button_color_text` - read-only call that returns the button text color. Previously only available as a tuple using `theme_button_color`. + * New function - `theme_use_custom_titlebar` returns `True` if Global Settings indicate custom titlebars should will be used +* `Output` Element - implementation changed to use the Multiline Element. No one should be impacted unless you were using some internal object details that was not published. I still suggest using the `Multiline` element instead so that you can access much more functionality. +* Tab errors now use the popup errors with traceback +* `Column` Element + * Fixed scrollwheel not working correctly when expand paramters used. Scrolls the canvas now not the frame. + * New `size_subsample_width` & `size_subsample_height` parameteres + * Gives much more control over the sizing of SCROLLABLE columns. Previously the size was set to 1/2 the required height and the full required width. + * The defaults are backward compatible (size_subsample_width=1, size_subsample_height=2) + * Setting both to 1 will make the Column fit the contents exactly. One use is when you expect your Column to grow or shrink over time. Or maybe you didn't like the 1/2 size that PySimpleGUI has always used before. +* Made Select Colors match the theme colors + * `Input`, `Multiline`, `Combo` elements now use matching colors for selections of characters (big-time thanks to Jason who also provided the magic code to make the combo drop-down match the theme) +* `popup_get_file` - Removed the file_types parameter use if on a Mac + * Missed catching this problem when added the no_window option + * Need to revisit this file types on the Mac topic in next release. + * Particularly bad problem because cannot catch the exception. Your code simply crashes. And the behavior isn't the same across all Macs. + * I'm really sorry Mac users that we keep running into these kinds of issues! +* Auto-correct file_types problems for Browse buttons. Automatically change the formatting from (str, str) to ((str, str),) and warns the user +* Docstring typo fixes for file_types parm + ## Code Condition Make it run diff --git a/readme_creator/markdown input files/4_Release_notes.md b/readme_creator/markdown input files/4_Release_notes.md index 78d3946f..18766c25 100644 --- a/readme_creator/markdown input files/4_Release_notes.md +++ b/readme_creator/markdown input files/4_Release_notes.md @@ -2491,6 +2491,90 @@ Test harness forces all windows to be modal and is no longer keep-on-top - Forced all windows except for 1 non-modal popup to be modal. This also should ensure no windows are "lost" behind the main window +## 4.60.0 PySimpleGUI 8-May-2022 + +TTK Scrollbars... the carpet now matches the drapes +Debug Window improvements +Built-in Screen-capture Initial Release +Test Harness and Settings Windows fit on small screens better + +* Debug Window + * Added the `wait` and `blocking` parameters (they are identical) + * Setting to `True` will make the `Print` call wait for a user to press a `Click To Continue...` button + * Example use - if you want to print right before exiting your program + * Added `Pause` button + * If clicked, the `Print` will not return until user presses `Resume` + * Good for programs that are outputting information quickly and you want to pause execution so you can read the output +* TTK + * TTK Theme added to the PySimpleGUI Global Settings Window + * Theme list is retrieved from tkinter now rather than hard coded + * TTK Scrollbars + * All Scrollbars have been replaced with TTK Scrollbars + * Scrollbars now match the PySimpleGUI theme colors + * Can indicate default settings in the PySimpleGUI Global Settings Window + * Can preview the settings in the Global Settings Window + * Scrollbars settings are defined in this priority order: + * The Element's creation in your layout + * The Window's creation + * Calling `set_options` + * The defaults in the PySimpleGUI Global Settings + * The TTK Theme can change the appearance of scrollbars as well + * Impacted Elements: + * `Multiline` + * `Listbox` + * `Table` + * `Tree` + * `Output` + * Tree Element gets horizontal scrollbar setting + * `sg.main()` Test Harness + * Restructured the `main()` Test Harness to be more compact. Now fits Pi screens better. + * Made not modal so can interact with the Debug Window + * Turned off Grab Anywhere (note you can always use Control+Drag to move any PySimpleGUI window) + * Freed up graph lines as they scroll off the screen for better memory management + * Made the upgrade from GitHub status window smaller to fit small screens better + * Global Settings + * Restructured the Global Settings window to be tabbed + * Added ability to control Custom Titlebar. Set here and all of your applications will use this setting for the Titlebar and Menubar + * TTK Theme can be specified in the global settings (already mentioned above) + * New section for the Screenshot feature + * Exception handling added to `bind` methods + * Screenshots + * First / early release of a built-in screenshot feature + * Requires that PIL be installed on your system + * New `Window` method `save_window_screenshot_to_disk` + * Global Settings allows definition of a hotkey that triggers a save + * Popup is shown when hotkeys are used + * **To be clear** - PIL does not need to be installed in order to use PySimpleGUI. ONLY when a capture is attempted does PySimpleGUI try to import PIL + * It's the first step of building the larger "Gallery" feature + * The alignment is not perfect and the whole thing needs more work + * The auto-numbering freature is not yet implemented. Only 1 file is used and is overwritten if exists +* `user_settings_delete_filename` got a new parm `report_error` (off by default). The `UserSettings` object also got this parm to help control error reporting +* Themes (PySimpleGUI Themes) + * `theme_global` - added error checking and reporting should non-strandard theme names be attempted with this call + * New theme `Dark Grey 15`. Give it a try! + * New theme `Python Plus` - a more saturated blue and yellow colors. Give it a try! + * New function - `theme_button_color_background` - read-only call that returns the button background color. Previously only available as a tuple using `theme_button_color`. + * New function - `theme_button_color_text` - read-only call that returns the button text color. Previously only available as a tuple using `theme_button_color`. + * New function - `theme_use_custom_titlebar` returns `True` if Global Settings indicate custom titlebars should will be used +* `Output` Element - implementation changed to use the Multiline Element. No one should be impacted unless you were using some internal object details that was not published. I still suggest using the `Multiline` element instead so that you can access much more functionality. +* Tab errors now use the popup errors with traceback +* `Column` Element + * Fixed scrollwheel not working correctly when expand paramters used. Scrolls the canvas now not the frame. + * New `size_subsample_width` & `size_subsample_height` parameteres + * Gives much more control over the sizing of SCROLLABLE columns. Previously the size was set to 1/2 the required height and the full required width. + * The defaults are backward compatible (size_subsample_width=1, size_subsample_height=2) + * Setting both to 1 will make the Column fit the contents exactly. One use is when you expect your Column to grow or shrink over time. Or maybe you didn't like the 1/2 size that PySimpleGUI has always used before. +* Made Select Colors match the theme colors + * `Input`, `Multiline`, `Combo` elements now use matching colors for selections of characters (big-time thanks to Jason who also provided the magic code to make the combo drop-down match the theme) +* `popup_get_file` - Removed the file_types parameter use if on a Mac + * Missed catching this problem when added the no_window option + * Need to revisit this file types on the Mac topic in next release. + * Particularly bad problem because cannot catch the exception. Your code simply crashes. And the behavior isn't the same across all Macs. + * I'm really sorry Mac users that we keep running into these kinds of issues! +* Auto-correct file_types problems for Browse buttons. Automatically change the formatting from (str, str) to ((str, str),) and warns the user +* Docstring typo fixes for file_types parm + + ## Code Condition Make it run diff --git a/readme_creator/markdown input files/5_call_reference.md b/readme_creator/markdown input files/5_call_reference.md index 707471df..693fcfe3 100644 --- a/readme_creator/markdown input files/5_call_reference.md +++ b/readme_creator/markdown input files/5_call_reference.md @@ -3026,6 +3026,9 @@ Example: If first row has a `VPush`, then your layout will be At the bottom of ### save_to_disk +### save_window_screenshot_to_disk + + ### send_to_back @@ -3449,6 +3452,8 @@ The way to get Windows that have elements that have matching colors. + + @@ -3463,6 +3468,8 @@ The way to get Windows that have elements that have matching colors. + + -------------------- diff --git a/readme_creator/output/call reference.md b/readme_creator/output/call reference.md index 710af939..898e542a 100644 --- a/readme_creator/output/call reference.md +++ b/readme_creator/output/call reference.md @@ -13632,6 +13632,20 @@ Parameter Descriptions: |--|--|--| | str | filename | Filename to save the values to in pickled form | +### save_window_screenshot_to_disk + +Saves an image of the PySimpleGUI window provided into the filename provided + +``` +save_window_screenshot_to_disk(filename = None) +``` + +Parameter Descriptions: + +|Type|Name|Meaning| +|--|--|--| +| (PIL.ImageGrab or None) | **RETURN** | A PIL ImageGrab object that can be saved or manipulated + ### send_to_back Pushes this window to the bottom of the stack of windows. It is the opposite of BringToFront @@ -18689,6 +18703,32 @@ Parameter Descriptions: |--|--|--| | (str, str) | **RETURN** | (str, str) - TUPLE with color strings of the button color currently in use (button text color, button background color) +Returns the button color background currently in use. Note this function simple calls the theme_button_color +function and splits apart the tuple + +``` +theme_button_color_background() +``` + +Parameter Descriptions: + +|Type|Name|Meaning| +|--|--|--| +| (str) | **RETURN** | color string of the button color background currently in use + +Returns the button color text currently in use. Note this function simple calls the theme_button_color +function and splits apart the tuple + +``` +theme_button_color_text() +``` + +Parameter Descriptions: + +|Type|Name|Meaning| +|--|--|--| +| (str) | **RETURN** | color string of the button color text currently in use + Sets/Returns the background color currently in use for all elements except containers ``` @@ -18864,6 +18904,20 @@ Parameter Descriptions: |--|--|--| | (str) | **RETURN** | (str) - color string of the text background color currently in use +Returns True if a custom titlebar will be / should be used. +The setting is in the Global Settings window and can be overwridden +using set_options call + +``` +theme_use_custom_titlebar() +``` + +Parameter Descriptions: + +|Type|Name|Meaning| +|--|--|--| +| (bool) | **RETURN** | True if a custom titlebar / custom menubar should be used + -------------------- ## Platform Checks diff --git a/readme_creator/output/index.md b/readme_creator/output/index.md index 5dff9f08..132e4406 100644 --- a/readme_creator/output/index.md +++ b/readme_creator/output/index.md @@ -10081,6 +10081,89 @@ Test harness forces all windows to be modal and is no longer keep-on-top - Set the main window `keep_on_top=False`. Ensures that all windows created by it should never be hidden. This is a somewhat experimental change. Let's hope for the best! - Forced all windows except for 1 non-modal popup to be modal. This also should ensure no windows are "lost" behind the main window +## 4.60.0 PySimpleGUI 8-May-2022 + +TTK Scrollbars... the carpet now matches the drapes +Debug Window improvements +Built-in Screen-capture Initial Release +Test Harness and Settings Windows fit on small screens better + +* Debug Window + * Added the `wait` and `blocking` parameters (they are identical) + * Setting to `True` will make the `Print` call wait for a user to press a `Click To Continue...` button + * Example use - if you want to print right before exiting your program + * Added `Pause` button + * If clicked, the `Print` will not return until user presses `Resume` + * Good for programs that are outputting information quickly and you want to pause execution so you can read the output +* TTK + * TTK Theme added to the PySimpleGUI Global Settings Window + * Theme list is retrieved from tkinter now rather than hard coded + * TTK Scrollbars + * All Scrollbars have been replaced with TTK Scrollbars + * Scrollbars now match the PySimpleGUI theme colors + * Can indicate default settings in the PySimpleGUI Global Settings Window + * Can preview the settings in the Global Settings Window + * Scrollbars settings are defined in this priority order: + * The Element's creation in your layout + * The Window's creation + * Calling `set_options` + * The defaults in the PySimpleGUI Global Settings + * The TTK Theme can change the appearance of scrollbars as well + * Impacted Elements: + * `Multiline` + * `Listbox` + * `Table` + * `Tree` + * `Output` + * Tree Element gets horizontal scrollbar setting + * `sg.main()` Test Harness + * Restructured the `main()` Test Harness to be more compact. Now fits Pi screens better. + * Made not modal so can interact with the Debug Window + * Turned off Grab Anywhere (note you can always use Control+Drag to move any PySimpleGUI window) + * Freed up graph lines as they scroll off the screen for better memory management + * Made the upgrade from GitHub status window smaller to fit small screens better + * Global Settings + * Restructured the Global Settings window to be tabbed + * Added ability to control Custom Titlebar. Set here and all of your applications will use this setting for the Titlebar and Menubar + * TTK Theme can be specified in the global settings (already mentioned above) + * New section for the Screenshot feature + * Exception handling added to `bind` methods + * Screenshots + * First / early release of a built-in screenshot feature + * Requires that PIL be installed on your system + * New `Window` method `save_window_screenshot_to_disk` + * Global Settings allows definition of a hotkey that triggers a save + * Popup is shown when hotkeys are used + * **To be clear** - PIL does not need to be installed in order to use PySimpleGUI. ONLY when a capture is attempted does PySimpleGUI try to import PIL + * It's the first step of building the larger "Gallery" feature + * The alignment is not perfect and the whole thing needs more work + * The auto-numbering freature is not yet implemented. Only 1 file is used and is overwritten if exists +* `user_settings_delete_filename` got a new parm `report_error` (off by default). The `UserSettings` object also got this parm to help control error reporting +* Themes (PySimpleGUI Themes) + * `theme_global` - added error checking and reporting should non-strandard theme names be attempted with this call + * New theme `Dark Grey 15`. Give it a try! + * New theme `Python Plus` - a more saturated blue and yellow colors. Give it a try! + * New function - `theme_button_color_background` - read-only call that returns the button background color. Previously only available as a tuple using `theme_button_color`. + * New function - `theme_button_color_text` - read-only call that returns the button text color. Previously only available as a tuple using `theme_button_color`. + * New function - `theme_use_custom_titlebar` returns `True` if Global Settings indicate custom titlebars should will be used +* `Output` Element - implementation changed to use the Multiline Element. No one should be impacted unless you were using some internal object details that was not published. I still suggest using the `Multiline` element instead so that you can access much more functionality. +* Tab errors now use the popup errors with traceback +* `Column` Element + * Fixed scrollwheel not working correctly when expand paramters used. Scrolls the canvas now not the frame. + * New `size_subsample_width` & `size_subsample_height` parameteres + * Gives much more control over the sizing of SCROLLABLE columns. Previously the size was set to 1/2 the required height and the full required width. + * The defaults are backward compatible (size_subsample_width=1, size_subsample_height=2) + * Setting both to 1 will make the Column fit the contents exactly. One use is when you expect your Column to grow or shrink over time. Or maybe you didn't like the 1/2 size that PySimpleGUI has always used before. +* Made Select Colors match the theme colors + * `Input`, `Multiline`, `Combo` elements now use matching colors for selections of characters (big-time thanks to Jason who also provided the magic code to make the combo drop-down match the theme) +* `popup_get_file` - Removed the file_types parameter use if on a Mac + * Missed catching this problem when added the no_window option + * Need to revisit this file types on the Mac topic in next release. + * Particularly bad problem because cannot catch the exception. Your code simply crashes. And the behavior isn't the same across all Macs. + * I'm really sorry Mac users that we keep running into these kinds of issues! +* Auto-correct file_types problems for Browse buttons. Automatically change the formatting from (str, str) to ((str, str),) and warns the user +* Docstring typo fixes for file_types parm + ## Code Condition Make it run