PySimpleGUI 6.4 (released 11/02/2026)
python -m pip install --upgrade PySimpleGUI
6.4 rolls up everything that has been on GitHub since 6.3 (6.3.1 through 6.3.19).
New
resizablecan be a tuple to allow resizing in one direction only, e.g.resizable=(False, True)for vertical only- Pane element - new
sash_widthandsash_cursorparameters - Each PySimpleGUI program now gets its own taskbar identity on Windows, so the right icon shows when several are running
- Windows with a custom titlebar get a taskbar icon, including after minimize / restore
popup_error_with_tracebackshows the full traceback in a Multiline so the whole error can be copiedset_options(tooltip_text_color=, tooltip_background_color=)to color tooltips application-wideset_options(set_tooltip_to_element_key=True)- debugging aid that shows each element's key as its tooltipset_optionsignores options it doesn't recognize instead of crashingWindow.frame_extents()andWindow.current_frame_location()fname()debugging aid -print(f'[{fname()}] starting')prints the name of the function it's in- Ctrl+C in a program using
read_all_windowsexits cleanly
Fixes
Button.update(image_data=...)crashed on a button that didn't have an imageInput.updatewithCOLOR_SYSTEM_DEFAULT- Mouse wheel stopped scrolling a scrollable Column when the pointer was over an element inside it
auto_save_locationcrashed reading a location of[None, None](#6904) and crept down by the titlebar height on Linux- Window creation reworked for Linux and Wayland (#3507)
disable_minimize=Truecrashed on Linux- Right-click menus didn't close when clicking away on Linux (#6664)
- Windows: hiding or changing the menubar with
Menu.updateleft a blank strip at the bottom of the window - PyCharm "Edit" opened at the wrong line (file now comes before
--line) - Many color checks reworked so bad colors no longer crash element creation
Testing
- The 66 screenshot regression tests on Windows: 6.4 matches 6.3.19 everywhere. Against 6.3.0.1 the only difference is SNAP_03 - the
Button.update(image_data=)crash that 6.3.4 fixed. - Linux Mint: 65 of the 66 match the last Linux run (6.3.14). The one flagged, alpha_channel, is a see-through window - its contents are identical, only the desktop showing through it changed.
Every change since 6.3
The change log from PySimpleGUI.py, which is cleared at each release. Changes Claude made are marked "Claude:".
- 6.3.1 (3-Aug-2026) - Fixed a COLOR_SYSTEM_DEFAULT bug in Input.update
- 6.3.2 (3-Aug-2026) - Changed editor format string for PyCharm to
"<editor> <file> --line <line>". The file should be before the line number parms - 6.3.3 (8-Aug-2026) - Changed a LOT of checks for valid colors when setting tkinter widget colors.... more to go
- (9-Aug-2026) More color check changes. Added _is_valid_color that calls tkinter to check the color string when checking colors
- Removed _widget_set_fg_color and _widget_set_bg_color functions that used to check for valid colors
- Changed popup_error_with_traceback to now show the full traceback in a Multiline in the error window
- Changed keyword parameters foreground to fg and background to bg for tkinter config calls
- Made a TON of changes, broke lots of things, reverted 1/2 a ton of changes.
- Ran automated regressions on this release flush out problems in the Element creation parameters
- 6.3.4 (12-Aug-2026) - Fixed bug when applying images in an element's update method. Was crashing when looking for widget.image. Needed to check attr exists first
- 6.3.5 (14-Aug-2026) - New feature for window resizing. Added ability to set resizable parameter when creating the window to the normal True/False as well as taking a tuple that indicates the directions the window can be resized (e.g. resizable=(False, True) means only allow resizing in the Y direction.
- 6.3.6 (15-Aug-2026) - Changed _error_popup_with_code to add the text at the top of the error window into the Multiline so that a user can copy the entire error using the Multiline
- 6.3.7 (18-Aug-2026) - New debugging aid - "set tooltip to element's key" is enabled by calling set_options(set_tooltip_to_element_key=True)
- 6.3.8 (21-Aug-2026) - Added kwargs to set_options. Used to soak up options that are not recognized. This keeps bad options from crashing the program. It won't help the older versions of PySimpleGUI that don't recognize a new option, but it will help from this version of PySimpleGUI onward
- Added tooltip_text_color and tooltip_background_color to set_options so that they can be set on an application-wide basis
- 6.3.9 (24-Aug-2026) - Added try around call to tkinter mainloop in read_all_windows. It looks specifically for a KeyboardInterrupt. If caught, it'll print a message and call sys.exit to exit the application
- 6.3.10 (26-Aug-2026) - Fix for bug 6904. Was crashing when reading a location of [None, None] from settings file. Fix was to convert to a tuple
- 6.3.11 (26-Aug-2026) - Fix for bug 3507 (hopefully)... It's a Linux specific problem... it's also a fix for Wayland (successor to X11). It's a somewhat fundamental change to how every window is created. Rather than using Alpha to hide a window while it's being created, this version withdraws the window and uses a call I didn't know about to get the size of the window before it's fully created. master.winfo_reqwidth() master.winfo_reqheight(). Alpha was needed before so the window dimensions could be gathered to determine where to locate the window so it is centered on the screen.
- 6.3.12 (27-Aug-2026) - Another bite of the fix-auto-save-location bug fix apple
- 6.3.13 (27-Aug-2026) - Fix for the fix made in 6.3.11 when creating windows. Needed to add back the alpha method of hiding the window when the window has no titlebar. The withdraw method of hiding the window causes the titlebar to appear so can't use it for no titlebar windows
- 6.3.14 (27-Aug-2026) - Changed windows that use custom titlebar to use withdraw to hide the window during creation. It's providing an icon on the taskbar that I've not been able to get using previous methods. Still need to change the minimize window code for custom titlebar. Needed to change custom_titlebar_restore in order to show an icon on the titlebar when the window has been restored after minimize. It's Windows specific so need to test all this on Linux & Mac
- Added function fname() to use as a debugging aid. When printed, it prints the function name of the function the print is inside of. Usage:
print(f'[{fname()}] starting...')prints[my_func] starting...
- Added function fname() to use as a debugging aid. When printed, it prints the function name of the function the print is inside of. Usage:
- 6.3.15 (28-Aug-2026) - Fix for bug in Linux and Mac when disable_minimize=True when creating window. On Linux was crashing. Not sure about Mac but have a new way to remove the minimize button
- 6.3.16 (30-Aug-2026) - Pane element enhancement. Added parameters: sash_width, sash_cursor to Pane element. These fill out the common parameters used with Panes
- 6.3.17 (5-Sept-2026) - Claude: Fix for auto_save_location creeping on Linux. It saved winfo_x/y, which on X11 is the CLIENT corner (Windows: frame corner), and restored it as a frame position, so every run moved the window down by the titlebar height. Tk's geometry() read-back is no better on Cinnamon/Muffin (drifts once the window has been moved, invisible resize borders get included). Now the decoration size is measured once, from where the client area landed versus the position requested, and client corner minus decorations is saved. current_location(), size, move() unchanged. Added Window.frame_extents() -> (left, top, right, bottom) and Window.current_frame_location() -> value that round-trips through location= / move(). save_window_screenshot_to_disk titlebar height was 0 on Linux; now uses frame_extents().
- 6.3.17 (28-Oct-2026) - Claude: Windows taskbar App ID is now derived from the main script's path (
PySimpleGUI.App.<md5 of path>) instead of one hardcoded string shared by every PySimpleGUI program. Windows treated all PySimpleGUI apps as ONE application, so with several running the taskbar could show the wrong icon (e.g. the Tk feather) for some of them. Each app now has its own taskbar identity; two instances of the SAME script still combine. set_options(win_app_id=...) still overrides. Windows-only - no change on Linux/Mac. - 6.3.17 (28-Oct-2026) - Claude: Fix for Windows leaving a menubar-height blank strip at the bottom of the window when Menu.update hides or changes the menubar. Since the 6.3.11 withdraw-method window creation, removing the menubar makes Windows grow the client area by the bar's height instead of shrinking the frame. Menu.update now measures the client size before changing the menubar and re-asserts it if the OS changed it.
- 6.3.18 (29-Oct-2026) - Claude: Fixed mouse wheel not scrolling a scrollable Column when the pointer is over child widgets. Moving onto a child fires a
<Leave>on the canvas (NotifyInferior crossing) which unbound the wheel. unhookMouseWheel now keeps the bindings hooked when the pointer is still inside the scrolled frame or any of its descendants. - 6.3.19 (30-Oct-2026) - mike & Claude: Fix for issue 6664. Call to self.TKRightClickMenu.grab_release in the _RightClickMenuCallback for Element and Window objects was causing the click away event to get discarded so that the close menu close doesn't happen. Only a problem on Linux.
Windows Test Results
๐งช PySimpleGUI 6.4 โ Screenshot Regression Results
Caution
1 of 66 screenshots flagged for review โ New 6.4 vs Baseline 6.3.0.1
The flagged one is new, not changed: 6.3.0.1 crashed taking SNAP_03_button_update - the bug 6.3.4 fixed.
| ๐ข PASS | ๐ด FAIL | โ ERROR | ๐ก Missing in new | ๐ก New screenshot |
|---|---|---|---|---|
| 65 | 0 | 0 | 0 | 1 |
Fail threshold 0.1 % mean pixel difference ยท PNGs: baseline 65, new 66 ยท pairs compared 65 ยท compare_screenshots_gui.py v1.3 ยท 2026-11-02 15:08
Test environment
Baseline 2026-11-01_6.3.0.1
| New 2026-11-01_6.4
| |
|---|---|---|
| PySimpleGUI | 6.3.0.1 | 6.4 ๐ธ |
| Python | 3.12.10 64 bit (AMD64) | 3.12.10 64 bit (AMD64) |
| Tcl/Tk | 8.6.15 | 8.6.15 |
| OS | Windows-11-10.0.26200-SP0 | Windows-11-10.0.26200-SP0 |
| Windows build | 26200.9711 (25H2) | 26200.9711 (25H2) |
| Run date | 2026-11-01 07:29 | 2026-11-01 07:27 |
๐ธ = changed since the baseline run
All 66 results
File
Status
Details
SNAP_01_text_all_params.png
๐ข PASS
0.0000% pixel difference
SNAP_01_text_update.png
๐ข PASS
0.0000% pixel difference
SNAP_02_input_all_params.png
๐ข PASS
0.0000% pixel difference
SNAP_02_input_update.png
๐ข PASS
0.0000% pixel difference
SNAP_03_button_all_params.png
๐ข PASS
0.0000% pixel difference
SNAP_04_combo_all_params.png
๐ข PASS
0.0000% pixel difference
SNAP_04_combo_update.png
๐ข PASS
0.0000% pixel difference
SNAP_05_listbox_all_params.png
๐ข PASS
0.0000% pixel difference
SNAP_05_listbox_update.png
๐ข PASS
0.0000% pixel difference
SNAP_06_checkbox_radio_all_params.png
๐ข PASS
0.0000% pixel difference
SNAP_06_checkbox_radio_update.png
๐ข PASS
0.0000% pixel difference
SNAP_07_spin_all_params.png
๐ข PASS
0.0000% pixel difference
SNAP_07_spin_update.png
๐ข PASS
0.0000% pixel difference
SNAP_08_slider_all_params.png
๐ข PASS
0.0000% pixel difference
SNAP_08_slider_update.png
๐ข PASS
0.0000% pixel difference
SNAP_09_progressbar_all_params.png
๐ข PASS
0.0000% pixel difference
SNAP_09_progressbar_update.png
๐ข PASS
0.0000% pixel difference
SNAP_10_frame_all_params.png
๐ข PASS
0.0000% pixel difference
SNAP_10_frame_column_update.png
๐ข PASS
0.0000% pixel difference
SNAP_11_multiline_all_params.png
๐ข PASS
0.0000% pixel difference
SNAP_11_multiline_update.png
๐ข PASS
0.0000% pixel difference
SNAP_12_table_all_params.png
๐ข PASS
0.0000% pixel difference
SNAP_12_table_update.png
๐ข PASS
0.0000% pixel difference
SNAP_13_tree_all_params.png
๐ข PASS
0.0000% pixel difference
SNAP_13_tree_update.png
๐ข PASS
0.0000% pixel difference
SNAP_14_graph_all_params.png
๐ข PASS
0.0000% pixel difference
SNAP_14_graph_update.png
๐ข PASS
0.0000% pixel difference
SNAP_15_column_all_params.png
๐ข PASS
0.0000% pixel difference
SNAP_16_tab_update.png
๐ข PASS
0.0000% pixel difference
SNAP_16_tabgroup_all_params.png
๐ข PASS
0.0000% pixel difference
SNAP_17_buttonmenu_update.png
๐ข PASS
0.0000% pixel difference
SNAP_17_menu_buttonmenu_all_params.png
๐ข PASS
0.0000% pixel difference
SNAP_17_menu_update_1_def_replaced.png
๐ข PASS
0.0000% pixel difference
SNAP_17_menu_update_2_hidden.png
๐ข PASS
0.0000% pixel difference
SNAP_17_menu_update_3_noop.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_01_default.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_02_no_titlebar.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_03_resizable_min_size.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_04_keep_on_top.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_05_alpha_channel.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_06_disable_close.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_07_disable_minimize.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_08_location_anchor_center.png
๐ข PASS
0.0027% pixel difference
SNAP_18_window_09_relative_location.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_10_custom_size.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_11_margins.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_12_element_padding.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_13_button_color.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_14_font.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_15_background_color.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_16_return_keyboard_events.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_17_right_click_menu_colors.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_18_modal.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_19_element_justification_center.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_20_tooltip_colors.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_21_default_element_size.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_22_default_button_size.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_23_text_justification.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_24_border_depth.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_25_progress_bar_color.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_26_ttk_theme.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_27_custom_titlebar.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_28_window_sbar_colors.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_29_watermark.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_30_scaling.png
๐ข PASS
0.0000% pixel difference
SNAP_03_button_update.png
๐ก New screenshot
Exists in new but not in baseline
Flagged screenshots (1)
| Status | File | Details |
|---|---|---|
| ๐ก New screenshot | SNAP_03_button_update.png
| Exists in new but not in baseline |
Linux Test Results
๐งช PySimpleGUI 6.4 โ Screenshot Regression Results
Caution
1 of 66 screenshots flagged for review โ New 6.4 vs Baseline 6.3.14
Not a 6.4 problem: the alpha_channel window is see-through, so the desktop behind it shows in the screenshot.
| ๐ข PASS | ๐ด FAIL | โ ERROR | ๐ก Missing in new | ๐ก New screenshot |
|---|---|---|---|---|
| 65 | 1 | 0 | 0 | 0 |
Fail threshold 0.1 % mean pixel difference ยท PNGs: baseline 66, new 66 ยท pairs compared 66 ยท compare_screenshots_gui.py v1.3 ยท 2026-11-02 13:25
Test environment
Baseline aug_28_6.3.13_linux
| New 2026-11-02_6.4
| |
|---|---|---|
| PySimpleGUI | 6.3.14 | 6.4 ๐ธ |
| Python | 3.12.3 | 3.12.3 |
| Tcl/Tk | 8.6 | 8.6.14 ๐ธ |
| OS | Linux-6.14.0-37-generic-x86_64-with-glibc2.39 | Linux-6.14.0-37-generic-x86_64-with-glibc2.39 |
| Run date | 2026-08-28 07:52 | 2026-11-02 13:09 |
๐ธ = changed since the baseline run
All 66 results
File
Status
Details
SNAP_01_text_all_params.png
๐ข PASS
0.0000% pixel difference
SNAP_01_text_update.png
๐ข PASS
0.0000% pixel difference
SNAP_02_input_all_params.png
๐ข PASS
0.0000% pixel difference
SNAP_02_input_update.png
๐ข PASS
0.0000% pixel difference
SNAP_03_button_all_params.png
๐ข PASS
0.0000% pixel difference
SNAP_03_button_update.png
๐ข PASS
0.0000% pixel difference
SNAP_04_combo_all_params.png
๐ข PASS
0.0000% pixel difference
SNAP_04_combo_update.png
๐ข PASS
0.0000% pixel difference
SNAP_05_listbox_all_params.png
๐ข PASS
0.0000% pixel difference
SNAP_05_listbox_update.png
๐ข PASS
0.0000% pixel difference
SNAP_06_checkbox_radio_all_params.png
๐ข PASS
0.0000% pixel difference
SNAP_06_checkbox_radio_update.png
๐ข PASS
0.0000% pixel difference
SNAP_07_spin_all_params.png
๐ข PASS
0.0000% pixel difference
SNAP_07_spin_update.png
๐ข PASS
0.0000% pixel difference
SNAP_08_slider_all_params.png
๐ข PASS
0.0000% pixel difference
SNAP_08_slider_update.png
๐ข PASS
0.0000% pixel difference
SNAP_09_progressbar_all_params.png
๐ข PASS
0.0000% pixel difference
SNAP_09_progressbar_update.png
๐ข PASS
0.0000% pixel difference
SNAP_10_frame_all_params.png
๐ข PASS
0.0000% pixel difference
SNAP_10_frame_column_update.png
๐ข PASS
0.0000% pixel difference
SNAP_11_multiline_all_params.png
๐ข PASS
0.0000% pixel difference
SNAP_11_multiline_update.png
๐ข PASS
0.0000% pixel difference
SNAP_12_table_all_params.png
๐ข PASS
0.0000% pixel difference
SNAP_12_table_update.png
๐ข PASS
0.0000% pixel difference
SNAP_13_tree_all_params.png
๐ข PASS
0.0000% pixel difference
SNAP_13_tree_update.png
๐ข PASS
0.0000% pixel difference
SNAP_14_graph_all_params.png
๐ข PASS
0.0000% pixel difference
SNAP_14_graph_update.png
๐ข PASS
0.0000% pixel difference
SNAP_15_column_all_params.png
๐ข PASS
0.0000% pixel difference
SNAP_16_tab_update.png
๐ข PASS
0.0000% pixel difference
SNAP_16_tabgroup_all_params.png
๐ข PASS
0.0000% pixel difference
SNAP_17_buttonmenu_update.png
๐ข PASS
0.0000% pixel difference
SNAP_17_menu_buttonmenu_all_params.png
๐ข PASS
0.0000% pixel difference
SNAP_17_menu_update_1_def_replaced.png
๐ข PASS
0.0000% pixel difference
SNAP_17_menu_update_2_hidden.png
๐ข PASS
0.0000% pixel difference
SNAP_17_menu_update_3_noop.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_01_default.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_02_no_titlebar.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_03_resizable_min_size.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_04_keep_on_top.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_05_alpha_channel.png
๐ด FAIL
0.6654% pixel difference
SNAP_18_window_06_disable_close.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_07_disable_minimize.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_08_location_anchor_center.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_09_relative_location.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_10_custom_size.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_11_margins.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_12_element_padding.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_13_button_color.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_14_font.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_15_background_color.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_16_return_keyboard_events.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_17_right_click_menu_colors.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_18_modal.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_19_element_justification_center.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_20_tooltip_colors.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_21_default_element_size.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_22_default_button_size.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_23_text_justification.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_24_border_depth.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_25_progress_bar_color.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_26_ttk_theme.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_27_custom_titlebar.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_28_window_sbar_colors.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_29_watermark.png
๐ข PASS
0.0000% pixel difference
SNAP_18_window_30_scaling.png
๐ข PASS
0.0000% pixel difference
Flagged screenshots (1)
| Status | File | Details |
|---|---|---|
| ๐ด FAIL | SNAP_18_window_05_alpha_channel.png
| 0.6654% pixel difference ยท max ฮ 91 |
