Python GUIs for Humans! PySimpleGUI is the top-rated Python application development environment. Launched in 2018 and actively developed, maintained, and supported in 2024. Transforms tkinter, Qt, WxPython, and Remi into a simple, intuitive, and fun experience for both hobbyists and expert users.
An emergency "dot release" to work around a problem that began with Mac OS 12.3.
TTK Scrollbars... the carpet now matches the drapes
Debug Window improvements
Built-in Screen-capture Initial Release
Test Harness and Settings Windows fit on small screens better
wait
and blocking
parameters (they are identical)
True
will make the Print
call wait for a user to press a Click To Continue...
buttonPause
button
Print
will not return until user presses Resume
set_options
Multiline
Listbox
Table
Tree
Output
sg.main()
Test Harness
main()
Test Harness to be more compact. Now fits Pi screens better.bind
methodsWindow
method save_window_screenshot_to_disk
user_settings_delete_filename
got a new parm report_error
(off by default). The UserSettings
object also got this parm to help control error reportingtheme_global
- added error checking and reporting should non-strandard theme names be attempted with this callDark Grey 15
. Give it a try!Python Plus
- a more saturated blue and yellow colors. Give it a try!theme_button_color_background
- read-only call that returns the button background color. Previously only available as a tuple using theme_button_color
.theme_button_color_text
- read-only call that returns the button text color. Previously only available as a tuple using theme_button_color
.theme_use_custom_titlebar
returns True
if Global Settings indicate custom titlebars should will be usedOutput
Element - implementation changed to use the Multiline Element. No one should be impacted unless you were using some internal object details that was not published. I still suggest using the Multiline
element instead so that you can access much more functionality.Column
Element
size_subsample_width
& size_subsample_height
parameteres
Input
, Multiline
, Combo
elements now use matching colors for selections of characters (big-time thanks to Jason who also provided the magic code to make the combo drop-down match the theme)popup_get_file
- Removed the file_types parameter use if on a Mac
An oh sh*t release due to yesterday's bug New force modal Windows option Test harness forces all windows to be modal and is no longer keep-on-top
Input
element that demonstrated the problemforce_modal_windows
parm added to set_options
disable_modal_windows
optionmain()
test harness to ensure all windows are modal so no window is accidentally lostkeep_on_top=True
for all popups and windows created by test harnesskeep_on_top=False
. Ensures that all windows created by it should never be hidden. This is a somewhat experimental change. Let's hope for the best!A little of this and that release
More focus on focus
bind
methods improved with propagate
parm
Visibility losing settings fix
execute_get_results
Added checking for timeout error to instead of showing an error popup as it's not truly an error in this caseCheckbox
Added cast to bool of default parm in case user passes in an incorrect typeButtonMenu.update
addition of button_text parameter. Enables changing text displayed on the ButtonMenu. Should have been an original feature.SYMBOL_CHECKMARK_SMALL
& SYMBOL_X_SMALL
ButtonMenu.Click
- Added click PEP8 alias ButtonMenu.click
Window.start_thread
a simple alias for Window.perform_long_operation
. It's clearer what's happening with this alias.bind_return_key
parm added to Spin element. If element has focus and the return key is pressed, then an event is generated.image_source
parm added to Button
Element.get_next_focus
added. Returns the element that should get the focus after the indicated elementElement.get_previous_focus
added. Returns the element that should get the focus after the indicated elementWindow.widget_to_element
returns the element that a tkinter widget is used to implement (it's a reverse lookup)Element.widget
added. It's a PEP8 compliant property that returns Element.Widget
Element.key
added. It's a PEP8 compliant property that returns Element.Key
propagate
parameter to the bind methods. Used to tell tkinter whether or not to propagate the event to the element / or windowCanvas.update
method added so that a Canvas
can be made visible/invisibletk.scrolledtext.ScrolledText
by adding a vertical scrollbar to a Text widget. Getting ready for addition of ttk scrollbars!tooltip_offset
parm added to set_options
as a way to set tooltip location (a hack to get around an 8.6.12 bug)Table
and Tree
elements new parameters
border_width
- the border width for the elementheader_border_width
- the width of the border for the headerheader_relief
- the type of header relief to useTable
and Tree
elements are now excluded from grab-anywhere so that headers can be resized without moving the window