Releases: PySimpleGUI/PySimpleGUI
Release list
6.3 Summer 2026
Lots of new features, enhancements, fixes in this release. And I might have finally posted a release this year without a major hiccup.
Release notes from documentation...
6.3 Released 2-Aug-2026
- Mouseover Image - New feature for Image and Button elements
- Listbox - New method
get_active_index. Returns the index of where the cursor is located. - Window new features and fixes
- Window Anchors
- Window Location Anchor - New location option for creating and getting location for a window. Anchors are specified using these constants:
WIN_ANCHOR_UPPER_LEFT
WIN_ANCHOR_UPPER_RIGHT
WIN_ANCHOR_LOWER_LEFT
WIN_ANCHOR_LOWER_RIGHT
WIN_ANCHOR_CENTER - Added
location_anchorparameter to all the popups. - New
center_on_locationparameter that changes the location within a window to use for initial creation. Default if upper left corner. - Added
window_anchorparameter easy_print and the debug window. - Updated
Window.moveto use anchors when moving. The anchor used when window created can be overridden using anchor parameter
- Window Location Anchor - New location option for creating and getting location for a window. Anchors are specified using these constants:
- New
use_min_sizeboolean parameter - If True and the window is resizable, set the minimum size to the size of window when created - Bug fix in
Window.settings_restore. If a value was not yet set for an element, then should save the setting that was specified - Finally got the rtype docstring right for
Window__getitem__. It fixed the type warnings and improved the autocomplete - Added parameters
tooltip_text_color,tooltip_background_color,tooltip_font,tooltip_time,tooltip_offsettoWindowobject.
- Window Anchors
- Added automatic key creation for non-input element. Input type element already get assigned a unique key if one is not specified. Previously, static elements have no key unless explicitly set (e.g. Text elem). Now all those static elements will get a key with format "KeyID 41B56A4C50" if a key is not specified.
- Fixed bug 6896 (Tree object has no attribute BType). Needed to check the element type is a Button before checking the type of button
- Placeholder - new feature for Input elements. When the input is empty and it doesn't have focus and the mouse is not over it, then a "placeholder" text will be shown in the input area. Considering adding to Combo and other input-style elements.
- Added new symbols:
- SYMBOL_GEAR = '⛭'
- SYMBOL_DEGREE = '°'
- SYMBOL_REFRESH = '⟳'
- Right click menu
- Added propogate_to_window param to Element.set_right_click_menu.
- Fixed right click problem of both a window and an element getting the click event.
- Automatically restart user's program after upgrading to the PySimpleGUI maint release.
- Changed a LOT of docstrings for parms that are location and size type of parameters. Added (None, None) to valid types.
- Expanded the
set_tooltipmethod's parameters to include the text/background colors, tooltip time, tooltip offset, skip bind. ExpandedToolTipobject to include the same parms. - Added border_color parm to the
Frame.updatemethod so that the border color can be changed dynamically - Added font parm to element.set_tooltip. Now all aspects of the tooltip are controllable through this interface.
- Added 'thickness' parameter to HorizontalSeparator and VerticalSeparator elements. If no thickness is specified, then the current Separator elements are used which as based on TTK Line widgets. If a thickness is specified, then a Frame widget is used to draw the line. The added benefit of this addition is that the color of the Frame based lines will match the color used in Frame Elements.
- User Settings - Native support for tuples in UserSettings files (json). They're now automatically serialized.
GraphElement- Fixed
Graph.draw_arcdocstring. It incorrectly stated the available styles. Should have been 'pieslice', 'chord', 'arc' Graph.draw_line- addedcapstylewhich determines how the end of the line should appearGraph.draw_lines- addedarrow,arrow_shape,joinstyle,capstypeparameters.
- Fixed
6.2
14-Jun-2026 OK, so I'm still rusty at making releases.
I'm probably writing crappy code right now too, but that's nothing new. We're just going to have to live with the faults. I forgot to bump the code to version 6.2 before I labeled the release in the repo. So, I deleted 6.2, checked in the change, and am recreating it. Not very clean, but not the end of the world either since the actual harm is low.
This release has some nice fixes and new features. I'm really wanting to get this up on PyPI soon, especially since I'm releasing Demo Programs that rely on some of these features.
Seeing how I only wrote and checked in some of these features today, I'm going to be delaying a little longer before pushing up to PyPI. The documentation's call reference still needs updating, especially for this release as there were numerous new parameters added to several elements that need to be properly documented.
New features
- Can set time in Window.start_time using "h:m:s" string
- Support for horizontal scroll only for scrollable Column Element
- Ability to set a Frame element's border color to any color. Defaults to text element color
Here are a couple of "mini windows" that were created by the Demo_Drag_and_Drop_Onto_Icon.pyw Demo Program for the psgdnd module. It uses the Frame element's new "choose any border color" feature.
Bug fixes
echo_stdout_stderrparameter wasn't working for Multiline and Output elements- #6686
Detailed changelog
6.1.1 31-May-2026 Fix in upgrade using pip code. Was not displaying the correct version number for currently running PSG
Fixed Multiline echo_stdout_stderr feature/parameter. Was not correctly echoing out to sys.stdout, stderr.
Edited docstring to document the correct behavior. It will only echo if you've rerouted stdout or stderr to the element.
It will not do the reroute for you.
6.1.2 1-Jun-2026 Fix for Issue #6686 - Calendar chooser button clearing fields that should only be cleared when window.read returns.
Used the newly added element_that_generated_event variable from the Graph element fix above (already came in handy).
6.1.3 1-Jun-2026 Another try at fixing the upgrade from github bug that shows wrong installed version number. This time for sure....
6.1.4 2-Jun-2026 Display the Maint Release version number in the Home Window. Moved the install button
6.1.5 2-Jun-2026 Added ability to specify timers using string "H:M:S" when calling Window.start_timer.
6.1.6 3-Jun-2026 Enhancement - support for horizontal scroll only for scrollable column element
6.1.7 12-Jun-2026 Added typing ElementType for better type support when looking up elements using window[key]
6.1.8 13-Jun-2026 Removed the ElementType changes. Code completion breaks when used with key lookups
6.1.9 14-Jun-2026 Enhancement - ability to set the Frame border color. Added border_color and border_width_no_relief parms to the Frame element
6.1.10 14-Jun-2026 Set Frame border color to default to the text element color if no color is set
6.1
This 6.1 release not going to be a release after all....
Well.... so much for posting this as an official release. I found a problem in the upgrade code and needed to fix it prior to pushing to PyPI.... so, now I've got a version 6.1.1. I like to push to PyPI chunkier versions numbers like 6.1, 6.2, ..... if possible. I think I'll skip 6.1, get a 6.2 together, and then nuke this 6.1 release so there's not a bunch of little screw-up releases piling up.
How to quickly install this release
You can pip install this release directly from GitHub using the command:
python -m pip install --upgrade https://github.com/PySimpleGUI/PySimpleGUI/zipball/6.1
Release of new fixes and features to PyPI
Would like to get this batch of changes posted to PyPI. The upgrade from GitHub feature has been handy for me. Maybe others will like it too. I don't have to remember that pip command. It's the old psgupgrade command or psgmain then clicking the "Install Maint Release" button.
Looks something like this if you go through psgmain.
The change log for 6.1
I'll post proper release notes to the documentation when the release is posted to PyPI.
6.0 5-Apr-2026 Initial release
6.0.1 8-Apr-2026 Emoji change to main window
6.0.2 8-May-2026 Fixed bug in Window.settings_save. If a window is closed using "X" or terminated in a
similar way, then the value None is written to the settings file for all keys.
The fix is to check if all values are None. If so, skip saving the values
6.0.3 13-May-2026 Added ability to print or insert images into Multiline Element. Use parameter "image"
6.0.4 13-May-2026 Added image_subsample parameter to the print functions/methods for multiline element
6.0.5 15-May-2026 Added "upgrade to Maintenance Release" capability. It's much like the PSG 5 feature
but uses GitHub as the location of release. Can be invoked from Home Window, or
using the psgupgrade command.
6.0.6 30-May-2026 Fix for bug #5750. Graph events was going into an infinite loop when write_event_value events
were received. Fix was to clear the realtime button flag. Potential for regression problems
should be minimal since only the Graph element conditional was changed.
6.0.7 30-May-2026 Added Enhancement #6671. Added parameter select select_node_keys to Tree.update. Enables nodes
in the tree to be programmatically selected as if the user selected them.
6.1 30-May-2026 Preparing for release, first to GitHub as 6.1, then post on PyPI.
PyPI Post Timeframe
The plan is to post to PyPI on 31-May-2026. That's a very fast GitHub to PyPI release cycle for me. I like to let things run a bit on GitHub first, but I'm not sure how much the GitHub releases are being used. I'm assuming very little, so rolling the dice a bit perhaps. ![]()