pypi PySimpleGUI 6.4

3 hours ago

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

  • resizable can be a tuple to allow resizing in one direction only, e.g. resizable=(False, True) for vertical only
  • Pane element - new sash_width and sash_cursor parameters
  • 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_traceback shows the full traceback in a Multiline so the whole error can be copied
  • set_options(tooltip_text_color=, tooltip_background_color=) to color tooltips application-wide
  • set_options(set_tooltip_to_element_key=True) - debugging aid that shows each element's key as its tooltip
  • set_options ignores options it doesn't recognize instead of crashing
  • Window.frame_extents() and Window.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_windows exits cleanly

Fixes

  • Button.update(image_data=...) crashed on a button that didn't have an image
  • Input.update with COLOR_SYSTEM_DEFAULT
  • Mouse wheel stopped scrolling a scrollable Column when the pointer was over an element inside it
  • auto_save_location crashed 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=True crashed on Linux
  • Right-click menus didn't close when clicking away on Linux (#6664)
  • Windows: hiding or changing the menubar with Menu.update left 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...
  • 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
image

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
flagged_screenshots

Don't miss a new PySimpleGUI release

NewReleases is sending notifications on new releases.