PySimpleGUI Versions Save

Python GUIs for Humans! PySimpleGUI is the top-rated Python application development environment. Launched in 2018 and actively developed, maintained, and supported in 2024. Transforms tkinter, Qt, WxPython, and Remi into a simple, intuitive, and fun experience for both hobbyists and expert users.

4.60.5

10 months ago

4.60.5 PySimpleGUI 21-May-2023

  • Mac fixes
    • Fix for Input Element not working in no-titlebar windows on MacOs 13.2.1
    • Change to the 0.99 Alpha fix made in 4.60.2. Now only applies patch when running on 8.6.12, regardless of Mac Control Panel setting in PySimpleGUI Global Settings. Removes the need for users to disable when upgrading tkinter.
  • Added Intelligent Upgrade Service - inform users when there are releases of PySimpleGUI that fix a problem that may be unique to their combination of components
  • Change to GitHub Issue GUI
    • Added checkbox for checking if running latest PyPI version
    • Recommended using Demo Browser to search Demo Programs
    • Use platform module to fill in the OS information field
  • SDK Help Window - changed all readthedocs links to use the PySimpleGUI.org hostname for better portability

4.60.4

10 months ago

4.60.4 PySimpleGUI 10-Oct-2022

  • Dot release to quickly fix the Trinket detection which stopped working recently

4.60.3

1 year ago

4.60.3 PySimpleGUI 27-Jul-2022

  • Emergency Patch Release for Mac OS 12.3 and greater
    • Fixed bug in Mac OS version check in yesterday's 4.60.2 release

4.60.2

1 year ago

An emergency "dot release" to work around a problem that began with Mac OS 12.3.

4.60.2 PySimpleGUI 26-Jul-2022

  • Emergency Patch Release for Mac OS 12.3 and greater
    • Adds a PySimpleGUI Mac Control Panel Controlled patch that sets the Alpha channel to 0.99 by default for these users
    • Is a workaround for a bug that was introduced into Mac OS 12.3

4.60.0

1 year ago

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

4.59.0

2 years ago

4.59.0 PySimpleGUI 5-Apr-2022

An oh sh*t release due to yesterday's bug New force modal Windows option Test harness forces all windows to be modal and is no longer keep-on-top

  • Removed ttk theme from the test harness. Forgot that I had changed it for testing.
  • Fixed bug where disabled state was not correctly saved in update methods, causing events to not be generated (Thank you Jason, again!)
    • Changed numerous elements, not just the Input element that demonstrated the problem
  • New force_modal_windows parm added to set_options
    • Forces all windows to be modal
    • Overrides the disable_modal_windows option
    • Used in the main() test harness to ensure all windows are modal so no window is accidentally lost
  • Test Harness changes
    • Set keep_on_top=True for all popups and windows created by test harness
    • 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.58.0

2 years ago

4.58.0 PySimpleGUI 3-Apr-2022

A little of this and that release
More focus on focus
bind methods improved with propagate parm
Visibility losing settings fix

  • execute_get_results Added checking for timeout error to instead of showing an error popup as it's not truly an error in this case
  • Checkbox Added cast to bool of default parm in case user passes in an incorrect type
  • ButtonMenu.update addition of button_text parameter. Enables changing text displayed on the ButtonMenu. Should have been an original feature.
  • Open GitHub Issue GUI Tabs use 2 lines now. Added tab asking where found PSG.
  • New symbols SYMBOL_CHECKMARK_SMALL & SYMBOL_X_SMALL
  • ButtonMenu.Click - Added click PEP8 alias ButtonMenu.click
  • Automatically add timeouts to user reads if a debugger window is opened. Debugger for multi-window applications still needs to be added
  • Window.start_thread a simple alias for Window.perform_long_operation. It's clearer what's happening with this alias.
  • bind_return_key parm added to Spin element. If element has focus and the return key is pressed, then an event is generated.
  • Event generation for disabled elements
    • If an element is disabled, then don't generate events (fixed specifically for Input element). However, if a Browse button fills in a disabled element, then an event should still be generated
    • Don't generate events if no files / folders selected using File or Folder Browse buttons. If cancel is clicked then no longer generates an event.
  • Fix docstring for image in the Titlebar element. Incorrectly said an ICO file can be used. Must be PNG or GIF
  • Windows-specific code that enables the PySimpleGUI supplied icon to be shown rather than the python.exe logo
  • Removed all temporary Tk() window creation calls
    • Instead create the hidden master root.
    • These were required for operations like getting the list of fonts from tkinter, the screensize, character width and height. This way one and only one Tk window will ever be creeated
    • The reason for the change is that the Mac crashes if multiple Tk() objects are created, even if only 1 at a time is active.
  • image_source parm added to Button
    • It can be either a filename or a base64 string.
    • This is like the Image elements parms
  • Graph element doc string improvement. Describes the mouse up event.
  • Improved support for focus
    • Element.get_next_focus added. Returns the element that should get the focus after the indicated element
    • Element.get_previous_focus added. Returns the element that should get the focus after the indicated element
    • Better exception error reporting for the Element focus methods. Uses popups with tracebacks now instead of prints
  • Window.widget_to_element returns the element that a tkinter widget is used to implement (it's a reverse lookup)
  • Element.widget added. It's a PEP8 compliant property that returns Element.Widget
  • Element.key added. It's a PEP8 compliant property that returns Element.Key
  • Simplified Radio, Checkbox, Slider creation. Moved the command parm outside the creation and instead made a config call.
  • Visibility fix
    • Expand and other settings were being lost when element is made invisible and visible again.
  • propagate parameter to the bind methods. Used to tell tkinter whether or not to propagate the event to the element / or window
  • Canvas.update method added so that a Canvas can be made visible/invisible
  • Removed the need for tk.scrolledtext.ScrolledText by adding a vertical scrollbar to a Text widget. Getting ready for addition of ttk scrollbars!
  • tooltip_offset parm added to set_options as a way to set tooltip location (a hack to get around an 8.6.12 bug)
  • Table and Tree elements new parameters
    • border_width - the border width for the element
    • header_border_width - the width of the border for the header
    • header_relief - the type of header relief to use
  • Table and Tree elements are now excluded from grab-anywhere so that headers can be resized without moving the window