From d7200baff5c7f97089cca919337a11f6a10b4218 Mon Sep 17 00:00:00 2001 From: PySimpleGUI Date: Wed, 8 Apr 2026 20:07:17 -0400 Subject: [PATCH 01/15] Fixed bad comment edit in demo browser. Added zipball install instructions to readme --- .../Browser_START_HERE_Demo_Programs_Browser.py | 4 +--- README.md | 13 +++++++++++++ 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/DemoPrograms/Browser_START_HERE_Demo_Programs_Browser.py b/DemoPrograms/Browser_START_HERE_Demo_Programs_Browser.py index 77cb39ac4..b5b7ffc20 100644 --- a/DemoPrograms/Browser_START_HERE_Demo_Programs_Browser.py +++ b/DemoPrograms/Browser_START_HERE_Demo_Programs_Browser.py @@ -1,9 +1,7 @@ ''' Copyright 2018-2026 PySimpleGUI. All rights reserved. -to the terms of the PySimpleGUI License Agreement available at https://eula.pysimplegui.com. - -to the PySimpleGUI License Agreement. + Licensed under LGPL3 ''' import os diff --git a/README.md b/README.md index cbdb95382..ceefa3a3f 100644 --- a/README.md +++ b/README.md @@ -41,6 +41,19 @@ I don't have a firm grasp of the future beyond a few weeks at this point. If th ## Installing +You can install straight from this GitHub repo. + +### Quickest install using zipball + +`python -m pip install --upgrade https://github.com/PySimpleGUI/PySimpleGUI/zipball/master` + +if you invoke using `python3`: + +`python3 -m pip install --upgrade https://github.com/PySimpleGUI/PySimpleGUI/zipball/master` + + +### If you have git installed + You can pip install straight from this Repo using the command: `python -m pip install git+https://github.com/PySimpleGUI/PySimpleGUI` From 9ef86bc3b19df3f3ed4b25e8acb2adf63b3eaf11 Mon Sep 17 00:00:00 2001 From: PySimpleGUI Date: Thu, 9 Apr 2026 15:39:49 -0400 Subject: [PATCH 02/15] Demo Browser set default demo program folder in settings window --- .../Browser_START_HERE_Demo_Programs_Browser.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/DemoPrograms/Browser_START_HERE_Demo_Programs_Browser.py b/DemoPrograms/Browser_START_HERE_Demo_Programs_Browser.py index b5b7ffc20..dc4bd6f41 100644 --- a/DemoPrograms/Browser_START_HERE_Demo_Programs_Browser.py +++ b/DemoPrograms/Browser_START_HERE_Demo_Programs_Browser.py @@ -10,7 +10,7 @@ import warnings import PySimpleGUI as sg -version = '6.0' +version = '6.0.1' __version__ = version.split()[0] @@ -52,6 +52,9 @@ 5.2.0 14-Aug-2024 Fixed erronous import error (when import line started with "from") Added a new "Path" input so that an arbitrary file can be executed easily (or edited) 5.3.0 15-Aug-2024 One last change for the new path input... clear other fields if chars are entered + 6.0 8-Apr-2026 Major version bump to match the commercial to LGPL3 license change + 6.0.1 9-Apr-2026 Set the likely location of the demo programs as the initial path in the settings window + Copyright 2018-2026 PySinpleGUI. All rights reserved. """ @@ -230,7 +233,7 @@ def get_line_number(file_path, string, dupe_lines): if string.strip() == line.strip() and num not in dupe_lines: lmn = num return lmn - + def kill_ascii(s): return "".join([x if ord(x) < 128 else '?' for x in s]) @@ -502,7 +505,7 @@ def find_in_file(string, demo_files_dict, regex=False, verbose=False, window=Non list_of_matches.append(_match.strip()) file_array_old.append(file_array_new) file_array_old.append(file_match_list) - + if tail in file_lines_dict: for i in range(1, 100): new_tail = f'{tail}_{i}' @@ -589,10 +592,13 @@ def settings_window(): except: global_theme = '' + # normally the demo programs are located in a folder in the same folder as the demo browser + default_demo_programs_path = os.path.join(os.path.dirname(__file__), 'demo_programs') + layout = [[sg.T('Program Settings', font='DEFAULT 25')], [sg.T('Path to Tree', font='_ 16')], - [sg.Combo(sorted(sg.user_settings_get_entry('-folder names-', [])), default_value=sg.user_settings_get_entry('-demos folder-', get_demo_path()), size=(50, 1), key='-FOLDERNAME-'), - sg.FolderBrowse('Folder Browse', target='-FOLDERNAME-'), sg.B('Clear History')], + [sg.Combo(sorted(sg.user_settings_get_entry('-folder names-', [])), default_value=sg.user_settings_get_entry('-demos folder-', get_demo_path()), size=(50, 1), auto_size_text=False, key='-FOLDERNAME-'), + sg.FolderBrowse('Folder Browse', target='-FOLDERNAME-', initial_folder=default_demo_programs_path), sg.B('Clear History')], [sg.T('Editor Program', font='_ 16')], [sg.T('Leave blank to use global default'), sg.T(global_editor)], [ sg.In(sg.user_settings_get_entry('-editor program-', ''),k='-EDITOR PROGRAM-'), sg.FileBrowse()], From 64245cc012533bfda612b2a114a832306804579d Mon Sep 17 00:00:00 2001 From: PySimpleGUI Date: Tue, 14 Apr 2026 12:11:45 -0400 Subject: [PATCH 03/15] Update for PyPI upload (please let it all work....) --- PySimpleGUI/CONTRIBUTING.md | 7 ++ PySimpleGUI/LICENSE.txt | 165 ++++++++++++++++++++++++++++++++++++ PySimpleGUI/README.md | 63 ++++++++++++++ README.md | 38 ++++----- setup.py | 2 +- 5 files changed, 252 insertions(+), 23 deletions(-) create mode 100644 PySimpleGUI/CONTRIBUTING.md create mode 100644 PySimpleGUI/LICENSE.txt create mode 100644 PySimpleGUI/README.md diff --git a/PySimpleGUI/CONTRIBUTING.md b/PySimpleGUI/CONTRIBUTING.md new file mode 100644 index 000000000..cc30e198a --- /dev/null +++ b/PySimpleGUI/CONTRIBUTING.md @@ -0,0 +1,7 @@ +## Contributing to PySimpleGUI + +We are happy to receive issues describing bug reports and feature requests! If your bug report relates to a security vulnerability, please do not file a public issue, and please instead reach out to us at issues@PySimpleGUI.com. + +We do not accept (and do not wish to receive) contributions of user-created or third-party code, including patches, pull requests, or code snippets incorporated into submitted issues. Please do not send us any such code! Bug reports and feature requests should not include any source code. + +If you nonetheless submit any user-created or third-party code to us, (1) you assign to us all rights and title in or relating to the code; and (2) to the extent any such assignment is not fully effective, you hereby grant to us a royalty-free, perpetual, irrevocable, worldwide, unlimited, sublicensable, transferrable license under all intellectual property rights embodied therein or relating thereto, to exploit the code in any manner we choose, including to incorporate the code into PySimpleGUI and to redistribute it under any terms at our discretion. diff --git a/PySimpleGUI/LICENSE.txt b/PySimpleGUI/LICENSE.txt new file mode 100644 index 000000000..153d416dc --- /dev/null +++ b/PySimpleGUI/LICENSE.txt @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. \ No newline at end of file diff --git a/PySimpleGUI/README.md b/PySimpleGUI/README.md new file mode 100644 index 000000000..01755287c --- /dev/null +++ b/PySimpleGUI/README.md @@ -0,0 +1,63 @@ +
+ +![PySimpleGUI Logo](https://pysimplegui.net/images/logos/Logo_Full_Transparent_Cropped.png) + +
+ + +# PySimpleGUI 6 + +6-Apr-2026 + +**Wait, what?** + +![PySimpleGUI Logo](http://pysimplegui.net/images/emojis/question_56.png) + +As we've been winding down the commercialization effort, shutting down servers and archiving materials, I saw this week that the PySimpleGUI repositories are going to be of little use. Everything was switched over to using PySimpleGUI 5. The documentation is PySimpleGUI5 specific as well. So, I made a decision a couple of days ago to get the project into a state where it's at least usable and hopefully even useful. + +## Version 4 on PyPI 4.60.5.0 + +A first step was to put version 4.60.5 up on PyPI. Version 4.60.5.0 was posted this week so that `pip install PySimpleGUI` will provide a version of PySimpleGUI that's solid. + +## PySimpleGUI 6 - Back to LGPL3 + +There were several years of development that went into the PySimpleGUI 5 effort. Rather than have those bug fixes and new features languish and be useless, I'm releasing them as Open Source. + +Not all of the Version 5 code is in 6. Things like the upgrade mechanism and of course the licensing has been removed. As far as functionality, it matches the SDK posted in the [Docs.PySimpleGUI.com](https://Docs.PySimpleGUI.com) documentation. + +## What to expect ahead + +### Applications, Demo Programs, etc + +The applications `psgdemos`, `psgfiglet`, `psghotkey` have all been upgraded to 6 and posted on GitHub and PyPI. The remaining applications are being updated as well. + +### Version 6 Uploaded to PyPI + +On Tues 14-Apr-2026 PSG Version 6 was posted to PyPI. There were a LOT of changes that have been made over the years since version 4 was released. Hoping that it all goes well! Feel free to open an issue if you run into trouble. +![PySimpleGUI Logo](http://pysimplegui.net/images/emojis/fingers_crossed_56.png) + +### Maintenance & Support + +I don't have a firm grasp of the future beyond a few weeks at this point. If the past 8 years is any indication, I'm not very good at making predictions. + +## Installing + +You can install the latest released version from PyPI with a simple: + +## PyPI + +`python -m pip install PySimpleGUI` + +## Github + +You can install the latest version straight from the PySimpleGUI GitHub repo without downloading the repo by running: + +`python -m pip install --upgrade https://github.com/PySimpleGUI/PySimpleGUI/zipball/master` + +If you want to download the repo then download/close and run in the downloaded folder: + +`python -m pip install .` + +## More updates coming... + +Changes are rolling out onto GitHub and PyPI every few days. They'll continue until everything gets switched over to Version 6. diff --git a/README.md b/README.md index ceefa3a3f..01755287c 100644 --- a/README.md +++ b/README.md @@ -9,11 +9,13 @@ 6-Apr-2026 -Wait, what? +**Wait, what?** + +![PySimpleGUI Logo](http://pysimplegui.net/images/emojis/question_56.png) As we've been winding down the commercialization effort, shutting down servers and archiving materials, I saw this week that the PySimpleGUI repositories are going to be of little use. Everything was switched over to using PySimpleGUI 5. The documentation is PySimpleGUI5 specific as well. So, I made a decision a couple of days ago to get the project into a state where it's at least usable and hopefully even useful. -## Version 4 on PyPI +## Version 4 on PyPI 4.60.5.0 A first step was to put version 4.60.5 up on PyPI. Version 4.60.5.0 was posted this week so that `pip install PySimpleGUI` will provide a version of PySimpleGUI that's solid. @@ -27,43 +29,35 @@ Not all of the Version 5 code is in 6. Things like the upgrade mechanism and of ### Applications, Demo Programs, etc -These all need to be modified to remove the commercial license and checks for version 5. It shouldn't take too long to get them all changed. In the meantime, everything is usable with minor edits. - -### Upload to PyPI +The applications `psgdemos`, `psgfiglet`, `psghotkey` have all been upgraded to 6 and posted on GitHub and PyPI. The remaining applications are being updated as well. -I'm hoping to get PSG6 up to PyPI in the next week. I first would like to get some runtime on it with installs happening from GitHub. When it is uploaded, because it's version 6, anyone pip installing will get it by default, so that quality needs to be checked first. +### Version 6 Uploaded to PyPI +On Tues 14-Apr-2026 PSG Version 6 was posted to PyPI. There were a LOT of changes that have been made over the years since version 4 was released. Hoping that it all goes well! Feel free to open an issue if you run into trouble. +![PySimpleGUI Logo](http://pysimplegui.net/images/emojis/fingers_crossed_56.png) ### Maintenance & Support I don't have a firm grasp of the future beyond a few weeks at this point. If the past 8 years is any indication, I'm not very good at making predictions. - ## Installing -You can install straight from this GitHub repo. - -### Quickest install using zipball +You can install the latest released version from PyPI with a simple: -`python -m pip install --upgrade https://github.com/PySimpleGUI/PySimpleGUI/zipball/master` - -if you invoke using `python3`: +## PyPI -`python3 -m pip install --upgrade https://github.com/PySimpleGUI/PySimpleGUI/zipball/master` +`python -m pip install PySimpleGUI` +## Github -### If you have git installed +You can install the latest version straight from the PySimpleGUI GitHub repo without downloading the repo by running: -You can pip install straight from this Repo using the command: -`python -m pip install git+https://github.com/PySimpleGUI/PySimpleGUI` +`python -m pip install --upgrade https://github.com/PySimpleGUI/PySimpleGUI/zipball/master` -or if you invoke Python using `python3`: -`python3 -m pip install git+https://github.com/PySimpleGUI/PySimpleGUI` +If you want to download the repo then download/close and run in the downloaded folder: -You can also download/clone the repo and run `python -m pip install .` ## More updates coming... -I'll post regular updates as progress is made. It should progress pretty quickly. - +Changes are rolling out onto GitHub and PyPI every few days. They'll continue until everything gets switched over to Version 6. diff --git a/setup.py b/setup.py index 66aad2369..1a0ea6552 100644 --- a/setup.py +++ b/setup.py @@ -10,7 +10,7 @@ def readme(): setuptools.setup( - name="PySimpleGUI", + name="pysimplegui", version="6.0", author="PySimpleGUI", author_email="PySimpleGUI@PySimpleGUI.org", From edc1cb913f562768ec76705d68c22844179fb50f Mon Sep 17 00:00:00 2001 From: PySimpleGUI Date: Tue, 14 Apr 2026 12:25:13 -0400 Subject: [PATCH 04/15] Fix missing comma --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 1a0ea6552..fb52ce014 100644 --- a/setup.py +++ b/setup.py @@ -27,7 +27,7 @@ def readme(): "License :: OSI Approved :: GNU Lesser General Public License v3 (LGPLv3)", "Intended Audience :: Developers", "Operating System :: OS Independent", - "Framework :: PySimpleGUI" + "Framework :: PySimpleGUI", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", From 589bb5297d6bd88e5e6eaddf26c655d688799058 Mon Sep 17 00:00:00 2001 From: PySimpleGUI Date: Tue, 14 Apr 2026 12:35:18 -0400 Subject: [PATCH 05/15] Fox for readme emojis so they show up on PyPI. Changed emoji on main window --- PySimpleGUI/PySimpleGUI.py | 6 +++--- README.md | 10 ++++++++++ setup.py | 2 +- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/PySimpleGUI/PySimpleGUI.py b/PySimpleGUI/PySimpleGUI.py index 5c11f59cf..12358fadc 100644 --- a/PySimpleGUI/PySimpleGUI.py +++ b/PySimpleGUI/PySimpleGUI.py @@ -54,7 +54,7 @@ """ -version = "6.0" +version = "6.0.1" @@ -62,7 +62,7 @@ Changelog since last major release 6.0 5-Apr-2026 Initial release - +6.0.1 8-Apr-2026 Emoji change to main window """ @@ -25275,7 +25275,7 @@ def _create_main_window(): def VerLine(version, description, justification='r', size=(40, 1)): return [T(version, justification=justification, font='Any 10', text_color='yellow', size=size, pad=(0, 0)), T(description, font='Any 10', pad=(0, 0))] - security_emoji = EMOJI_BASE64_HAPPY_WINK + security_emoji = _random_happy_emoji() diff --git a/README.md b/README.md index 01755287c..d4eaea795 100644 --- a/README.md +++ b/README.md @@ -11,8 +11,13 @@ **Wait, what?** +
+ ![PySimpleGUI Logo](http://pysimplegui.net/images/emojis/question_56.png) +
+ + As we've been winding down the commercialization effort, shutting down servers and archiving materials, I saw this week that the PySimpleGUI repositories are going to be of little use. Everything was switched over to using PySimpleGUI 5. The documentation is PySimpleGUI5 specific as well. So, I made a decision a couple of days ago to get the project into a state where it's at least usable and hopefully even useful. ## Version 4 on PyPI 4.60.5.0 @@ -34,8 +39,13 @@ The applications `psgdemos`, `psgfiglet`, `psghotkey` have all been upgraded to ### Version 6 Uploaded to PyPI On Tues 14-Apr-2026 PSG Version 6 was posted to PyPI. There were a LOT of changes that have been made over the years since version 4 was released. Hoping that it all goes well! Feel free to open an issue if you run into trouble. +
+ ![PySimpleGUI Logo](http://pysimplegui.net/images/emojis/fingers_crossed_56.png) +
+ + ### Maintenance & Support I don't have a firm grasp of the future beyond a few weeks at this point. If the past 8 years is any indication, I'm not very good at making predictions. diff --git a/setup.py b/setup.py index fb52ce014..544755310 100644 --- a/setup.py +++ b/setup.py @@ -11,7 +11,7 @@ def readme(): setuptools.setup( name="pysimplegui", - version="6.0", + version="6.0.1", author="PySimpleGUI", author_email="PySimpleGUI@PySimpleGUI.org", description="Python GUIs for Humans. Launched in 2018. NEW LGPL3 Version 6 released in 2026.", From 1eafc1b9b922ec4ffa6169632cf11061df3a050f Mon Sep 17 00:00:00 2001 From: PySimpleGUI Date: Tue, 14 Apr 2026 19:51:24 -0400 Subject: [PATCH 06/15] Fix for bad image url --- PySimpleGUI/README.md | 14 ++++++++++++-- README.md | 4 ++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/PySimpleGUI/README.md b/PySimpleGUI/README.md index 01755287c..db6448dd0 100644 --- a/PySimpleGUI/README.md +++ b/PySimpleGUI/README.md @@ -11,7 +11,12 @@ **Wait, what?** -![PySimpleGUI Logo](http://pysimplegui.net/images/emojis/question_56.png) +
+ +![PySimpleGUI Logo](https://pysimplegui.net/images/emojis/question_56.png) + +
+ As we've been winding down the commercialization effort, shutting down servers and archiving materials, I saw this week that the PySimpleGUI repositories are going to be of little use. Everything was switched over to using PySimpleGUI 5. The documentation is PySimpleGUI5 specific as well. So, I made a decision a couple of days ago to get the project into a state where it's at least usable and hopefully even useful. @@ -34,7 +39,12 @@ The applications `psgdemos`, `psgfiglet`, `psghotkey` have all been upgraded to ### Version 6 Uploaded to PyPI On Tues 14-Apr-2026 PSG Version 6 was posted to PyPI. There were a LOT of changes that have been made over the years since version 4 was released. Hoping that it all goes well! Feel free to open an issue if you run into trouble. -![PySimpleGUI Logo](http://pysimplegui.net/images/emojis/fingers_crossed_56.png) +
+ +![PySimpleGUI Logo](https://pysimplegui.net/images/emojis/fingers_crossed_56.png) + +
+ ### Maintenance & Support diff --git a/README.md b/README.md index d4eaea795..db6448dd0 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@
-![PySimpleGUI Logo](http://pysimplegui.net/images/emojis/question_56.png) +![PySimpleGUI Logo](https://pysimplegui.net/images/emojis/question_56.png)
@@ -41,7 +41,7 @@ The applications `psgdemos`, `psgfiglet`, `psghotkey` have all been upgraded to On Tues 14-Apr-2026 PSG Version 6 was posted to PyPI. There were a LOT of changes that have been made over the years since version 4 was released. Hoping that it all goes well! Feel free to open an issue if you run into trouble.
-![PySimpleGUI Logo](http://pysimplegui.net/images/emojis/fingers_crossed_56.png) +![PySimpleGUI Logo](https://pysimplegui.net/images/emojis/fingers_crossed_56.png)
From 2804d9d3c152a8fd15ae529bb76ab745a08e4623 Mon Sep 17 00:00:00 2001 From: PySimpleGUI Date: Tue, 14 Apr 2026 19:58:22 -0400 Subject: [PATCH 07/15] Force gtihub cache refresh --- PySimpleGUI/README.md | 4 ++-- README.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/PySimpleGUI/README.md b/PySimpleGUI/README.md index db6448dd0..c5f226991 100644 --- a/PySimpleGUI/README.md +++ b/PySimpleGUI/README.md @@ -13,7 +13,7 @@
-![PySimpleGUI Logo](https://pysimplegui.net/images/emojis/question_56.png) +![PySimpleGUI Logo](https://pysimplegui.net/images/emojis/question_56.png?raw=true&v=1))
@@ -41,7 +41,7 @@ The applications `psgdemos`, `psgfiglet`, `psghotkey` have all been upgraded to On Tues 14-Apr-2026 PSG Version 6 was posted to PyPI. There were a LOT of changes that have been made over the years since version 4 was released. Hoping that it all goes well! Feel free to open an issue if you run into trouble.
-![PySimpleGUI Logo](https://pysimplegui.net/images/emojis/fingers_crossed_56.png) +![PySimpleGUI Logo](https://pysimplegui.net/images/emojis/fingers_crossed_56.png?raw=true&v=1))
diff --git a/README.md b/README.md index db6448dd0..c5f226991 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@
-![PySimpleGUI Logo](https://pysimplegui.net/images/emojis/question_56.png) +![PySimpleGUI Logo](https://pysimplegui.net/images/emojis/question_56.png?raw=true&v=1))
@@ -41,7 +41,7 @@ The applications `psgdemos`, `psgfiglet`, `psghotkey` have all been upgraded to On Tues 14-Apr-2026 PSG Version 6 was posted to PyPI. There were a LOT of changes that have been made over the years since version 4 was released. Hoping that it all goes well! Feel free to open an issue if you run into trouble.
-![PySimpleGUI Logo](https://pysimplegui.net/images/emojis/fingers_crossed_56.png) +![PySimpleGUI Logo](https://pysimplegui.net/images/emojis/fingers_crossed_56.png?raw=true&v=1))
From 2d6f9adb8b0d9aa6d65886b4cec39d452c8c2ce9 Mon Sep 17 00:00:00 2001 From: PySimpleGUI Date: Tue, 14 Apr 2026 20:01:55 -0400 Subject: [PATCH 08/15] Minor typo. Images work at least --- PySimpleGUI/README.md | 4 ++-- README.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/PySimpleGUI/README.md b/PySimpleGUI/README.md index c5f226991..70687fbb4 100644 --- a/PySimpleGUI/README.md +++ b/PySimpleGUI/README.md @@ -13,7 +13,7 @@
-![PySimpleGUI Logo](https://pysimplegui.net/images/emojis/question_56.png?raw=true&v=1)) +![PySimpleGUI Emoji](https://pysimplegui.net/images/emojis/question_56.png?raw=true&v=1)
@@ -41,7 +41,7 @@ The applications `psgdemos`, `psgfiglet`, `psghotkey` have all been upgraded to On Tues 14-Apr-2026 PSG Version 6 was posted to PyPI. There were a LOT of changes that have been made over the years since version 4 was released. Hoping that it all goes well! Feel free to open an issue if you run into trouble.
-![PySimpleGUI Logo](https://pysimplegui.net/images/emojis/fingers_crossed_56.png?raw=true&v=1)) +![PySimpleGUI Emoji](https://pysimplegui.net/images/emojis/fingers_crossed_56.png?raw=true&v=1)
diff --git a/README.md b/README.md index c5f226991..5c5a57839 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@
-![PySimpleGUI Logo](https://pysimplegui.net/images/emojis/question_56.png?raw=true&v=1)) +![PySimpleGUI Emoji](https://pysimplegui.net/images/emojis/question_56.png?raw=true&v=1)
@@ -41,7 +41,7 @@ The applications `psgdemos`, `psgfiglet`, `psghotkey` have all been upgraded to On Tues 14-Apr-2026 PSG Version 6 was posted to PyPI. There were a LOT of changes that have been made over the years since version 4 was released. Hoping that it all goes well! Feel free to open an issue if you run into trouble.
-![PySimpleGUI Logo](https://pysimplegui.net/images/emojis/fingers_crossed_56.png?raw=true&v=1)) +![PySimpleGUI Emoji](https://pysimplegui.net/images/emojis/fingers_crossed_56.png?raw=true&v=1)
From 4023ff11ef458ce71b25bd49362ec78386e3ee92 Mon Sep 17 00:00:00 2001 From: PySimpleGUI Date: Wed, 15 Apr 2026 21:35:57 -0400 Subject: [PATCH 09/15] Fun with logos --- README.md | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 5c5a57839..af44aa15d 100644 --- a/README.md +++ b/README.md @@ -6,8 +6,13 @@ # PySimpleGUI 6 +
+ + +Alt text + +
-6-Apr-2026 **Wait, what?** @@ -18,11 +23,13 @@ +6-Apr-2026 + As we've been winding down the commercialization effort, shutting down servers and archiving materials, I saw this week that the PySimpleGUI repositories are going to be of little use. Everything was switched over to using PySimpleGUI 5. The documentation is PySimpleGUI5 specific as well. So, I made a decision a couple of days ago to get the project into a state where it's at least usable and hopefully even useful. -## Version 4 on PyPI 4.60.5.0 +## Version 4 on PyPI 4.60.5.1 -A first step was to put version 4.60.5 up on PyPI. Version 4.60.5.0 was posted this week so that `pip install PySimpleGUI` will provide a version of PySimpleGUI that's solid. +A first step was to put version 4.60.5 up on PyPI. Version 4.60.5.1 was posted this week so that `pip install PySimpleGUI` will provide a version of PySimpleGUI that's solid. ## PySimpleGUI 6 - Back to LGPL3 From dc77eec8de857cad39496d1daadefc6271a5cf0f Mon Sep 17 00:00:00 2001 From: PySimpleGUI Date: Fri, 8 May 2026 10:35:00 -0400 Subject: [PATCH 10/15] Fix in Window.save_settings --- PySimpleGUI/PySimpleGUI.py | 12 ++++++++++-- setup.py | 2 +- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/PySimpleGUI/PySimpleGUI.py b/PySimpleGUI/PySimpleGUI.py index 12358fadc..e3f2991e0 100644 --- a/PySimpleGUI/PySimpleGUI.py +++ b/PySimpleGUI/PySimpleGUI.py @@ -54,7 +54,7 @@ """ -version = "6.0.1" +version = "6.0.2" @@ -63,6 +63,9 @@ 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 buh in Window.settings_save. If a window is closed using "X" or terminated in a + similiar 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 """ @@ -11095,12 +11098,17 @@ def _build_element_list_for_form(self, top_window, window, elem_list): def settings_save(self, values): """ Saves settings to settings file using the values dictionary that is passed in. - + If all of the values in the dictionary are None, then it will not be saved :param values: Dictionary of values to potentially save :type values: (Dict) """ if values is None: # sometimes users may accidently pass in None, so just ignore it return + # if all values in the value dictionary are None, then assume the windows was closed + # and no values should be saved + if all(v is None for v in values.values()): + return + for key, value in values.items(): try: element = self.find_element(key) diff --git a/setup.py b/setup.py index 544755310..6af9a31b4 100644 --- a/setup.py +++ b/setup.py @@ -11,7 +11,7 @@ def readme(): setuptools.setup( name="pysimplegui", - version="6.0.1", + version="6.0.2", author="PySimpleGUI", author_email="PySimpleGUI@PySimpleGUI.org", description="Python GUIs for Humans. Launched in 2018. NEW LGPL3 Version 6 released in 2026.", From 200c6b3f34c6737ba3d6c48e6556e832a5a53a28 Mon Sep 17 00:00:00 2001 From: PySimpleGUI Date: Sat, 9 May 2026 12:35:24 -0400 Subject: [PATCH 11/15] Updated readme to match the documentation homepage --- .gitignore | 1 + README.md | 78 ++++++++++++++++++++---------------------------------- 2 files changed, 30 insertions(+), 49 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..0d20b6487 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.pyc diff --git a/README.md b/README.md index af44aa15d..84f502665 100644 --- a/README.md +++ b/README.md @@ -1,80 +1,60 @@ -
-![PySimpleGUI Logo](https://pysimplegui.net/images/logos/Logo_Full_Transparent_Cropped.png) - -
+

+ + +

-# PySimpleGUI 6 -
+ +# Open Source Once Again... +Hey, it's Mike....![](https://PySimpleGUI.net/images/emojis/wave_56.png?raw=true&v=1) -Alt text -
+We gave commercialization a try. It was an incredible experience, but it didn’t generate the resources needed to sustain PySimpleGUI at the level we had hoped. In February 2025, we announced that PySimpleSoft would be shutting down, with support continuing through the end of 2025. +That process is now complete. The next question was what to do with the code, documentation, and repositories. I always planned to keep the repos available for reference—so the decision came down to the software itself. -**Wait, what?** -
-![PySimpleGUI Emoji](https://pysimplegui.net/images/emojis/question_56.png?raw=true&v=1) +# PySimpleGUI 6 +
+Alt text
-6-Apr-2026 - -As we've been winding down the commercialization effort, shutting down servers and archiving materials, I saw this week that the PySimpleGUI repositories are going to be of little use. Everything was switched over to using PySimpleGUI 5. The documentation is PySimpleGUI5 specific as well. So, I made a decision a couple of days ago to get the project into a state where it's at least usable and hopefully even useful. - -## Version 4 on PyPI 4.60.5.1 - -A first step was to put version 4.60.5 up on PyPI. Version 4.60.5.1 was posted this week so that `pip install PySimpleGUI` will provide a version of PySimpleGUI that's solid. +I’ve released the PySimpleGUI 5 code as open source. After removing licensing and security components, it’s now available under the LGPL3 license on GitHub and PyPI. -## PySimpleGUI 6 - Back to LGPL3 +## Installing from PyPI -There were several years of development that went into the PySimpleGUI 5 effort. Rather than have those bug fixes and new features languish and be useless, I'm releasing them as Open Source. +To install the latest version (v6): -Not all of the Version 5 code is in 6. Things like the upgrade mechanism and of course the licensing has been removed. As far as functionality, it matches the SDK posted in the [Docs.PySimpleGUI.com](https://Docs.PySimpleGUI.com) documentation. +`python -m pip install PySimpleGUI` -## What to expect ahead +If you need the older version (4.60.5.1): -### Applications, Demo Programs, etc -The applications `psgdemos`, `psgfiglet`, `psghotkey` have all been upgraded to 6 and posted on GitHub and PyPI. The remaining applications are being updated as well. +`python -m pip install PySimpleGUI==4.60.5.1` -### Version 6 Uploaded to PyPI +## Installing from Github -On Tues 14-Apr-2026 PSG Version 6 was posted to PyPI. There were a LOT of changes that have been made over the years since version 4 was released. Hoping that it all goes well! Feel free to open an issue if you run into trouble. -
- -![PySimpleGUI Emoji](https://pysimplegui.net/images/emojis/fingers_crossed_56.png?raw=true&v=1) - -
- - -### Maintenance & Support +The GitHub repo has the most up-to-date code. You can install directly without cloning: -I don't have a firm grasp of the future beyond a few weeks at this point. If the past 8 years is any indication, I'm not very good at making predictions. -## Installing +`python -m pip install --upgrade https://github.com/PySimpleGUI/PySimpleGUI/zipball/master` -You can install the latest released version from PyPI with a simple: +Or clone/download the repo and install locally: -## PyPI - -`python -m pip install PySimpleGUI` - -## Github - -You can install the latest version straight from the PySimpleGUI GitHub repo without downloading the repo by running: +`python -m pip install .` + +## Longer Term Outlook -`python -m pip install --upgrade https://github.com/PySimpleGUI/PySimpleGUI/zipball/master` +I’m still wrapping up the transition from version 5 to 6, including the docs. After that, I’m honestly not sure what the long-term future looks like—but if the past 8 years are any indication, I’m not great at predicting it. -If you want to download the repo then download/close and run in the downloaded folder: -`python -m pip install .` +For now, I’m here and happy to help. -## More updates coming... +## Thank you -Changes are rolling out onto GitHub and PyPI every few days. They'll continue until everything gets switched over to Version 6. +PySimpleGUI has been a once-in-a-lifetime experience. It’s been amazing to see what people have built and to be a small part of it. Thanks to everyone who supported the project over the years. \ No newline at end of file From c85e76b503a0b60a3aea2778421c96561204f286 Mon Sep 17 00:00:00 2001 From: PySimpleGUI Date: Sun, 10 May 2026 10:40:19 -0400 Subject: [PATCH 12/15] Added overview, example, etc. --- README.md | 76 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 75 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 84f502665..760f014f7 100644 --- a/README.md +++ b/README.md @@ -57,4 +57,78 @@ For now, I’m here and happy to help. ## Thank you -PySimpleGUI has been a once-in-a-lifetime experience. It’s been amazing to see what people have built and to be a small part of it. Thanks to everyone who supported the project over the years. \ No newline at end of file +PySimpleGUI has been a once-in-a-lifetime experience. It’s been amazing to see what people have built and to be a small part of it. Thanks to everyone who supported the project over the years. + +--------------------------------- + + +# What is PySimpleGUI? + +PySimpleGUI is a wrapper for tkinter (and other GUI libraries) that transforms the GUI SDK into a simpler, more compact architecture while still providing detailed customization. No prior GUI programming experience needed. + +This is an entire interactive application. + +```python +import PySimpleGUI as sg + +# Define the window's contents +layout = [[sg.Text("What's your name?")], + [sg.Input(key='-INPUT-')], + [sg.Text(size=(40,1), key='-OUTPUT-')], + [sg.Button('Ok'), sg.Button('Quit')]] + +# Create the window +window = sg.Window('Window Title', layout) + +# Display and interact with the Window using an Event Loop +while True: + event, values = window.read() + # See if user wants to quit or window was closed + if event == sg.WINDOW_CLOSED or event == 'Quit': + break + # Output a message to the window + window['-OUTPUT-'].update('Hello ' + values['-INPUT-'] + "! Thanks for trying PySimpleGUI") + +# Finish up by removing from the screen +window.close() +``` + +This is the window that's created. + +![win1](https://raw.githubusercontent.com/PySimpleGUI/PySimpleGUI/master/images/for_readme/Example2-1.jpg) + +Here's the same window after some user interaction. + +![win2](https://raw.githubusercontent.com/PySimpleGUI/PySimpleGUI/master/images/for_readme/Example2-2.jpg) + +## Want to learn more? Documentation + + +You'll find **extensive** documentation at: + +https://Docs.PySimpleGUI.com + +## Contributing + +PySimpleGUI has always been developed more like a proprietary product than an open source project. Pull requests aren't accepted. + +## AI.... + +-sigh- +![](https://PySimpleGUI.net/images/emojis/weary_56.png?raw=true&v=1) + +Seems most projects have something to say about AI usage now. This is my **opinion** and how I've decided to use AI. It's what's right for me. It might not be right for you or anyone else. + +I use LLMs to search and summarize documentation, lookup errors, do research, get knowledge. I don't use LLMs to write code. My reason is very simple. + +**I like to write code.** + +I fell in love with programming 50 years ago. Writing software is my happy place. Why would I give that to a computer to do instead of getting the enjoyment I get from doing it? AI can generate lots of things. The feeling I get writing software is not one of those things it can generate. + +I'm not in a hurry. If I wanted code written for me, I would have opened the project up to pull requests years ago, but I didn't because I wanted to write the code. It's fun! + +## License & Copyright + +Copyright 2018-2026 PySimpleGUI. + +Licensed under LGPL3. From defbfacc794e131737c6cd1a0594384fbc67c9a4 Mon Sep 17 00:00:00 2001 From: PySimpleGUI Date: Sun, 10 May 2026 10:51:03 -0400 Subject: [PATCH 13/15] Couple of readme tweaks --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 760f014f7..eb868b9cc 100644 --- a/README.md +++ b/README.md @@ -121,9 +121,9 @@ Seems most projects have something to say about AI usage now. This is my **opin I use LLMs to search and summarize documentation, lookup errors, do research, get knowledge. I don't use LLMs to write code. My reason is very simple. -**I like to write code.** +### **I like to write code.** -I fell in love with programming 50 years ago. Writing software is my happy place. Why would I give that to a computer to do instead of getting the enjoyment I get from doing it? AI can generate lots of things. The feeling I get writing software is not one of those things it can generate. +I fell in love with programming 50 years ago. Writing software is my happy place. Why would I give that to a computer to do instead of getting the enjoyment I get from doing it? AI can generate lots of things. The feeling I get writing software is not one of the things AI can generate. I'm not in a hurry. If I wanted code written for me, I would have opened the project up to pull requests years ago, but I didn't because I wanted to write the code. It's fun! From e785155f7e199d835c8ce1353055ca8f1eabce9c Mon Sep 17 00:00:00 2001 From: PySimpleGUI Date: Sun, 10 May 2026 17:28:32 -0400 Subject: [PATCH 14/15] More readme updates --- README.md | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index eb868b9cc..28f4bc286 100644 --- a/README.md +++ b/README.md @@ -101,7 +101,7 @@ Here's the same window after some user interaction. ![win2](https://raw.githubusercontent.com/PySimpleGUI/PySimpleGUI/master/images/for_readme/Example2-2.jpg) -## Want to learn more? Documentation +## Documentation - want to learn more? You'll find **extensive** documentation at: @@ -114,7 +114,6 @@ PySimpleGUI has always been developed more like a proprietary product than an op ## AI.... --sigh- ![](https://PySimpleGUI.net/images/emojis/weary_56.png?raw=true&v=1) Seems most projects have something to say about AI usage now. This is my **opinion** and how I've decided to use AI. It's what's right for me. It might not be right for you or anyone else. @@ -127,8 +126,16 @@ I fell in love with programming 50 years ago. Writing software is my happy plac I'm not in a hurry. If I wanted code written for me, I would have opened the project up to pull requests years ago, but I didn't because I wanted to write the code. It's fun! +### PySimpleGUI in the AI era + +One question that it floating around about software, libraries, etc, is whether or not the library is relavent. There are people discovering and installing PySimpleGUI every day. Applicatsions are often build incrementally. When new features are added to a GUI application the layouts can change. Buttons need to move, etc. It's a lot earier to do that if you understand the code, whether it's written by AI or by hand. Modifying it will be necessary most likely. + +I use PySimpleGUI to write software frequently. I can't imagine not using it to write a Windows application. I've been building a 6502 breadboard computer. So I can watch what's happening in the system, created a bus analyzer program using a couple of Raspberry Pi Pico's and a PySimpleGUI application that controls it all running on Windows. + +That's enough for me to make some effort to get the ecosystem cleaned up and operational. + ## License & Copyright -Copyright 2018-2026 PySimpleGUI. +Copyright 2018-2026 PySimpleGUI. All rights reserved. Licensed under LGPL3. From 808a5303c9199320d070c5ef1a1e9b107712d75a Mon Sep 17 00:00:00 2001 From: PySimpleGUI Date: Mon, 11 May 2026 21:53:50 -0400 Subject: [PATCH 15/15] Reworking bits of readme. --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 28f4bc286..03452944e 100644 --- a/README.md +++ b/README.md @@ -128,11 +128,11 @@ I'm not in a hurry. If I wanted code written for me, I would have opened the pr ### PySimpleGUI in the AI era -One question that it floating around about software, libraries, etc, is whether or not the library is relavent. There are people discovering and installing PySimpleGUI every day. Applicatsions are often build incrementally. When new features are added to a GUI application the layouts can change. Buttons need to move, etc. It's a lot earier to do that if you understand the code, whether it's written by AI or by hand. Modifying it will be necessary most likely. +A common question in software today is whether a library is still relevant. The answer is yes, people discover and install PySimpleGUI every day. GUI applications are often built incrementally. As features are added, layouts change, buttons move, and the code needs to evolve. That’s much easier when the code is understandable, whether it was written by a person or an AI initially. -I use PySimpleGUI to write software frequently. I can't imagine not using it to write a Windows application. I've been building a 6502 breadboard computer. So I can watch what's happening in the system, created a bus analyzer program using a couple of Raspberry Pi Pico's and a PySimpleGUI application that controls it all running on Windows. +I use PySimpleGUI regularly, and I can’t imagine building a Windows app without it.I’ve recently been working on a 6502 breadboard computer, and I built a bus analyzer using a couple of Raspberry Pi Picos and a PySimpleGUI app to control everything from Windows. -That's enough for me to make some effort to get the ecosystem cleaned up and operational. +That’s reason enough for me to keep working to clean up the ecosystem and keep it running well. ## License & Copyright