Release 4.23.0
This commit is contained in:
parent
d80957e899
commit
10ec39bc85
|
@ -1,6 +1,6 @@
|
|||
#!/usr/bin/python3
|
||||
|
||||
version = __version__ = "4.22.0.12 Unreleased\n Added a bunch of warnings for windows operations to check for root being None, fix for table and tree colors due to tkinter bug in version 8.6.9, don't call overrideredirect if running on Mac, new shortcut parm k added to all elements (use interachgably with key), moved when 8.6.9 patch is applied, any_key_closes parameter added to popup, image parameter added to popup & popup_error, image parameter added to all popups, added caching to tree icons, error icons, added back a widthdrawal call that broke the Pi release"
|
||||
version = __version__ = "4.23.0 Released 3-Jul-2020"
|
||||
|
||||
port = 'PySimpleGUI'
|
||||
|
||||
|
@ -9810,6 +9810,8 @@ def FillFormWithValues(window, values_dict):
|
|||
:type window: (Window)
|
||||
:param values_dict: A dictionary with element keys as key and value is values parm for Update call
|
||||
:type values_dict: (Dict[Any:Any])
|
||||
:return: None
|
||||
:rtype: None
|
||||
"""
|
||||
|
||||
for element_key in values_dict:
|
||||
|
@ -11810,7 +11812,7 @@ class QuickMeter(object):
|
|||
def __init__(self, title, current_value, max_value, key, *args, orientation='v', bar_color=(None, None), button_color=(None, None), size=DEFAULT_PROGRESS_BAR_SIZE, border_width=None, grab_anywhere=False, no_titlebar=False):
|
||||
"""
|
||||
|
||||
:param title: text to display in eleemnt
|
||||
:param title: text to display in element
|
||||
:type title: (str)
|
||||
:param current_value: current value
|
||||
:type current_value: (int)
|
||||
|
@ -11967,6 +11969,8 @@ def OneLineProgressMeterCancel(key='OK for 1 meter'):
|
|||
|
||||
:param key: Key used when meter was created
|
||||
:type key: (Any)
|
||||
:return: None
|
||||
:rtype: None
|
||||
"""
|
||||
try:
|
||||
meter = QuickMeter.active_meters[key]
|
||||
|
@ -12166,6 +12170,8 @@ def cprint_set_output_destination(window, multiline_key):
|
|||
:type window: (Window)
|
||||
:param multiline_key: Key for the Multiline Element where output will be sent
|
||||
:type multiline_key: (Any)
|
||||
:return: None
|
||||
:rtype: None
|
||||
"""
|
||||
|
||||
global CPRINT_DESTINATION_WINDOW, CPRINT_DESTINATION_MULTILINE_ELMENT_KEY
|
||||
|
@ -12227,6 +12233,8 @@ def cprint(*args, **kwargs):
|
|||
:type key: (Any)
|
||||
:param window: Window containing the multiline to output to (if you want to override the one previously set)
|
||||
:type window: (Window)
|
||||
:return: None
|
||||
:rtype: None
|
||||
"""
|
||||
|
||||
destination_key = CPRINT_DESTINATION_MULTILINE_ELMENT_KEY
|
||||
|
@ -12331,6 +12339,8 @@ def SetGlobalIcon(icon):
|
|||
|
||||
:param icon: Either a Base64 byte string or a filename
|
||||
:type icon: Union[bytes, str]
|
||||
:return: None
|
||||
:rtype: None
|
||||
"""
|
||||
|
||||
Window._user_defined_icon = icon
|
||||
|
@ -12426,7 +12436,8 @@ def SetOptions(icon=None, button_color=None, element_size=(None, None), button_e
|
|||
:type ttk_theme: (str)
|
||||
:param suppress_error_popups: If True then error popups will not be shown if generated internally to PySimpleGUI
|
||||
:type suppress_error_popups: (bool)
|
||||
==============
|
||||
:return: None
|
||||
:rtype: None
|
||||
"""
|
||||
|
||||
global DEFAULT_ELEMENT_SIZE
|
||||
|
@ -13593,8 +13604,11 @@ LOOK_AND_FEEL_TABLE = {'SystemDefault':
|
|||
def ListOfLookAndFeelValues():
|
||||
"""
|
||||
Get a list of the valid values to pass into your call to change_look_and_feel
|
||||
:return: List[str] - list of valid string values
|
||||
|
||||
:return: list of valid string values
|
||||
:rtype: List[str]
|
||||
"""
|
||||
|
||||
return sorted(list(LOOK_AND_FEEL_TABLE.keys()))
|
||||
|
||||
|
||||
|
@ -13604,7 +13618,9 @@ def theme(new_theme=None):
|
|||
This call replaces the ChangeLookAndFeel / change_look_and_feel call which only sets the theme.
|
||||
|
||||
:param new_theme: the new theme name to use
|
||||
:return: (str) the currently selected theme
|
||||
:type new_theme: (str)
|
||||
:return: the currently selected theme
|
||||
:rtype: (str)
|
||||
"""
|
||||
if new_theme is not None:
|
||||
change_look_and_feel(new_theme)
|
||||
|
@ -13616,7 +13632,9 @@ def theme_background_color(color=None):
|
|||
Sets/Returns the background color currently in use
|
||||
Used for Windows and containers (Column, Frame, Tab) and tables
|
||||
|
||||
:return: (str) - color string of the background color currently in use
|
||||
:param color: new background color to use (optional)
|
||||
:type color: (str)
|
||||
:return: color string of the background color currently in use
|
||||
:rtype: (str)
|
||||
"""
|
||||
if color is not None:
|
||||
|
@ -13829,6 +13847,8 @@ def ChangeLookAndFeel(index, force=False):
|
|||
:type index: (str)
|
||||
:param force: no longer used
|
||||
:type force: (bool)
|
||||
:return: None
|
||||
:rtype: None
|
||||
"""
|
||||
|
||||
global CURRENT_LOOK_AND_FEEL
|
||||
|
@ -13898,6 +13918,8 @@ def preview_all_look_and_feel_themes(columns=12):
|
|||
They are sorted alphabetically. The legacy color names are mixed in, but otherwise they are sorted into Dark and Light halves
|
||||
:param columns: The number of themes to display per row
|
||||
:type columns: (int)
|
||||
:return: None
|
||||
:rtype: None
|
||||
"""
|
||||
|
||||
# Show a "splash" type message so the user doesn't give up waiting
|
||||
|
@ -15992,6 +16014,8 @@ def show_debugger_window(location=(None, None), *args):
|
|||
Shows the large main debugger window
|
||||
:param location: Locations (x,y) on the screen to place upper left corner of the window
|
||||
:type location: Tuple[int, int]
|
||||
:return: None
|
||||
:rtype: None
|
||||
"""
|
||||
if _Debugger.debugger is None:
|
||||
_Debugger.debugger = _Debugger()
|
||||
|
@ -16016,6 +16040,8 @@ def show_debugger_popout_window(location=(None, None), *args):
|
|||
|
||||
:param location: Locations (x,y) on the screen to place upper left corner of the window
|
||||
:type location: Tuple[int, int]
|
||||
:return: None
|
||||
:rtype: None
|
||||
"""
|
||||
if _Debugger.debugger is None:
|
||||
_Debugger.debugger = _Debugger()
|
||||
|
@ -16039,7 +16065,8 @@ def _refresh_debugger():
|
|||
"""
|
||||
Refreshes the debugger windows. USERS should NOT be calling this function. Within PySimpleGUI it is called for the USER every time the Window.Read function is called.
|
||||
|
||||
:return: rc (bool) False if user closed the main debugger window.
|
||||
:return: return code False if user closed the main debugger window.
|
||||
:rtype: (bool)
|
||||
"""
|
||||
if _Debugger.debugger is None:
|
||||
_Debugger.debugger = _Debugger()
|
||||
|
@ -16492,7 +16519,7 @@ def main():
|
|||
elif event == 'Launch Debugger':
|
||||
show_debugger_window()
|
||||
elif event == 'About...':
|
||||
popup_no_wait('About this program...', 'You are looking at the test harness for the PySimpleGUI program')
|
||||
popup_no_wait('About this program...', 'You are looking at the test harness for the PySimpleGUI program', keep_on_top=True, image=DEFAULT_BASE64_ICON)
|
||||
elif event.startswith('See'):
|
||||
window.set_transparent_color(theme_background_color())
|
||||
elif event == '-INSTALL-':
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1446,7 +1446,9 @@ Popup(args=*<1 or N object>,
|
|||
no_titlebar=False,
|
||||
grab_anywhere=False,
|
||||
keep_on_top=False,
|
||||
location=(None, None))
|
||||
location=(None, None),
|
||||
any_key_closes=False,
|
||||
image=None)
|
||||
```
|
||||
|
||||
Parameter Descriptions:
|
||||
|
@ -1455,7 +1457,7 @@ Parameter Descriptions:
|
|||
|--|--|--|
|
||||
| Any | *args | Variable number of your arguments. Load up the call with stuff to see! |
|
||||
| str | title | Optional title for the window. If none provided, the first arg will be used instead. |
|
||||
| Tuple[str, str] | button_color | Color of the buttons shown (text color, button color) |
|
||||
| Union[Tuple[str, str], None] | button_color | Color of the buttons shown (text color, button color) |
|
||||
| str | background_color | Window's background color |
|
||||
| str | text_color | text color |
|
||||
| int | button_type | NOT USER SET! Determines which pre-defined buttons will be shown (Default value = POPUP_BUTTONS_OK). There are many Popup functions and they call Popup, changing this parameter to get the desired effect. |
|
||||
|
@ -1470,6 +1472,8 @@ Parameter Descriptions:
|
|||
| bool | grab_anywhere | If True can grab anywhere to move the window. If no_titlebar is True, grab_anywhere should likely be enabled too |
|
||||
| Tuple[int, int] | location | Location on screen to display the top left corner of window. Defaults to window centered on screen |
|
||||
| bool | keep_on_top | If True the window will remain above all current windows |
|
||||
| bool | any_key_closes | If True then will turn on return_keyboard_events for the window which will cause window to close as soon as any key is pressed. Normally the return key only will close the window. Default is false. |
|
||||
| str) or (bytes | image | Image to include at the top of the popup window |
|
||||
| Union[str, None] | **RETURN** | Returns text of the button that was pressed. None will be returned if user closed window with X
|
||||
|
||||
The other output Popups are variations on parameters. Usually the button_type parameter is the primary one changed.
|
||||
|
@ -1508,7 +1512,8 @@ popup_scrolled(args=*<1 or N object>,
|
|||
no_titlebar=False,
|
||||
grab_anywhere=False,
|
||||
keep_on_top=False,
|
||||
font=None)
|
||||
font=None,
|
||||
image=None)
|
||||
```
|
||||
|
||||
Parameter Descriptions:
|
||||
|
@ -1530,6 +1535,7 @@ Parameter Descriptions:
|
|||
| bool | grab_anywhere | If True, than can grab anywhere to move the window (Default = False) |
|
||||
| bool | keep_on_top | If True the window will remain above all current windows |
|
||||
| Union[str, Tuple[str, int]] | font | specifies the font family, size, etc |
|
||||
| str) or (bytes | image | Image to include at the top of the popup window |
|
||||
| Union[str, None, TIMEOUT_KEY] | **RETURN** | Returns text of the button that was pressed. None will be returned if user closed window with X
|
||||
|
||||
Typical usage:
|
||||
|
@ -1570,7 +1576,8 @@ popup_no_wait(args=*<1 or N object>,
|
|||
no_titlebar=False,
|
||||
grab_anywhere=False,
|
||||
keep_on_top=False,
|
||||
location=(None, None))
|
||||
location=(None, None),
|
||||
image=None)
|
||||
```
|
||||
|
||||
Parameter Descriptions:
|
||||
|
@ -1592,6 +1599,7 @@ Parameter Descriptions:
|
|||
| bool | no_titlebar | If True no titlebar will be shown |
|
||||
| bool | grab_anywhere | If True: can grab anywhere to move the window (Default = False) |
|
||||
| Tuple[int, int] | location | Location of upper left corner of the window |
|
||||
| str) or (bytes | image | Image to include at the top of the popup window |
|
||||
| Union[str, None] | **RETURN** | Reason for popup closing
|
||||
|
||||
The `popup` call `popup_no_wait` or `popup_non_blocking` will create a popup window and then immediately return control back to you. You can turn other popup calls into non-blocking popups if they have a `non_blocking` parameter. Setting `non_blocking` to True will cause the function to return immediately rather than waiting for the window to be closed.
|
||||
|
@ -1631,7 +1639,8 @@ popup_get_text(message,
|
|||
no_titlebar=False,
|
||||
grab_anywhere=False,
|
||||
keep_on_top=False,
|
||||
location=(None, None))
|
||||
location=(None, None),
|
||||
image=None)
|
||||
```
|
||||
|
||||
Parameter Descriptions:
|
||||
|
@ -1652,6 +1661,7 @@ Parameter Descriptions:
|
|||
| bool | grab_anywhere | If True can click and drag anywhere in the window to move the window |
|
||||
| bool | keep_on_top | If True the window will remain above all current windows |
|
||||
| Tuple[int, int] | location | (x,y) Location on screen to display the upper left corner of window |
|
||||
| str) or (bytes | image | Image to include at the top of the popup window |
|
||||
| Union[str, None] | **RETURN** | Text entered or None if window was closed or cancel button clicked
|
||||
|
||||
```python
|
||||
|
@ -1689,7 +1699,8 @@ popup_get_file(message,
|
|||
grab_anywhere=False,
|
||||
keep_on_top=False,
|
||||
location=(None, None),
|
||||
initial_folder=None)
|
||||
initial_folder=None,
|
||||
image=None)
|
||||
```
|
||||
|
||||
Parameter Descriptions:
|
||||
|
@ -1715,6 +1726,7 @@ Parameter Descriptions:
|
|||
| bool | keep_on_top | If True the window will remain above all current windows |
|
||||
| Tuple[int, int] | location | Location of upper left corner of the window |
|
||||
| str | initial_folder | location in filesystem to begin browsing |
|
||||
| str) or (bytes | image | Image to include at the top of the popup window |
|
||||
| Union[str, None] | **RETURN** | string representing the file(s) chosen, None if cancelled or window closed with X
|
||||
|
||||
If configured as an Open File Popup then (save_as is not True) the dialog box will look like this.
|
||||
|
@ -1757,7 +1769,8 @@ popup_get_folder(message,
|
|||
grab_anywhere=False,
|
||||
keep_on_top=False,
|
||||
location=(None, None),
|
||||
initial_folder=None)
|
||||
initial_folder=None,
|
||||
image=None)
|
||||
```
|
||||
|
||||
Parameter Descriptions:
|
||||
|
@ -1779,6 +1792,7 @@ Parameter Descriptions:
|
|||
| bool | keep_on_top | If True the window will remain above all current windows |
|
||||
| Tuple[int, int] | location | Location of upper left corner of the window |
|
||||
| str | initial_folder | location in filesystem to begin browsing |
|
||||
| str) or (bytes | image | Image to include at the top of the popup window |
|
||||
| Union[str, None] | **RETURN** | string representing the path chosen, None if cancelled or window closed with X
|
||||
|
||||
This is a typical call
|
||||
|
@ -7273,6 +7287,33 @@ More cprint stuff
|
|||
* Can now easily "print" to anywhere, in color!
|
||||
|
||||
|
||||
## 4.23.0 PySimpleGUI 3-Jul-2020
|
||||
|
||||
Table Colors Fix - workaround for problems with tables and tree colors in Python 3.7.2 to 3.9+
|
||||
Mac crash fixed - tkinter.TclError: expected boolean value but got "" (hopefully)
|
||||
New shortcut "k" parameter for all elements that is the same as "key" - may be experimental / temporary if not well received
|
||||
More error checks
|
||||
popup extensions
|
||||
|
||||
* Fix for missing Table and Tree colors created in tk 8.6.9
|
||||
* This is a problem in all versions of Python 3.7.2 - 3.9.0 with no target fix date published
|
||||
* As a result of no fixes in sight, added a fix in PySimpleGUI if the tk version is 8.6.9
|
||||
* New Element creation parameter "k" - exact same thing as "key" but shorter. Helps with complex layouts
|
||||
* New error reporting on all element.update calls - checks to see if element has been fully created
|
||||
* set_options - new option to supress popup_errors coming from PySimpleGUI.py
|
||||
* Mac specific crash fix - if on a Mac, no longer calling wm_overrideredirect as it crashes the Mac now
|
||||
* Additional error checking (shows error instead of asserting:
|
||||
* Check for Widget creation before widget operations like bind, unbind, expand
|
||||
* Check for window finalize / read before some window operations like maximize, hide, etc
|
||||
* docstrings - more added. Fixed up a number of missing / erroneous ones
|
||||
* Tree element - caches images so that will not create new ones if previously used on another Tree item
|
||||
* popup - two new options
|
||||
* any_key_closes - bool. If True, any key pressed will close the window
|
||||
* image - can be a bytes (base64) or string (filename). Image will be shown at top of the popup
|
||||
* all popups - new image parameter (base64 or string)
|
||||
* a few new built-in icons
|
||||
|
||||
|
||||
### Upcoming
|
||||
|
||||
There will always be overlapping work as the ports will never actually be "complete" as there's always something new that can be built. However there's a definition for the base functionality for PySimpleGUI. This is what is being strived for with the current ports that are underway.
|
||||
|
|
55
readme.md
55
readme.md
|
@ -1446,7 +1446,9 @@ Popup(args=*<1 or N object>,
|
|||
no_titlebar=False,
|
||||
grab_anywhere=False,
|
||||
keep_on_top=False,
|
||||
location=(None, None))
|
||||
location=(None, None),
|
||||
any_key_closes=False,
|
||||
image=None)
|
||||
```
|
||||
|
||||
Parameter Descriptions:
|
||||
|
@ -1455,7 +1457,7 @@ Parameter Descriptions:
|
|||
|--|--|--|
|
||||
| Any | *args | Variable number of your arguments. Load up the call with stuff to see! |
|
||||
| str | title | Optional title for the window. If none provided, the first arg will be used instead. |
|
||||
| Tuple[str, str] | button_color | Color of the buttons shown (text color, button color) |
|
||||
| Union[Tuple[str, str], None] | button_color | Color of the buttons shown (text color, button color) |
|
||||
| str | background_color | Window's background color |
|
||||
| str | text_color | text color |
|
||||
| int | button_type | NOT USER SET! Determines which pre-defined buttons will be shown (Default value = POPUP_BUTTONS_OK). There are many Popup functions and they call Popup, changing this parameter to get the desired effect. |
|
||||
|
@ -1470,6 +1472,8 @@ Parameter Descriptions:
|
|||
| bool | grab_anywhere | If True can grab anywhere to move the window. If no_titlebar is True, grab_anywhere should likely be enabled too |
|
||||
| Tuple[int, int] | location | Location on screen to display the top left corner of window. Defaults to window centered on screen |
|
||||
| bool | keep_on_top | If True the window will remain above all current windows |
|
||||
| bool | any_key_closes | If True then will turn on return_keyboard_events for the window which will cause window to close as soon as any key is pressed. Normally the return key only will close the window. Default is false. |
|
||||
| str) or (bytes | image | Image to include at the top of the popup window |
|
||||
| Union[str, None] | **RETURN** | Returns text of the button that was pressed. None will be returned if user closed window with X
|
||||
|
||||
The other output Popups are variations on parameters. Usually the button_type parameter is the primary one changed.
|
||||
|
@ -1508,7 +1512,8 @@ popup_scrolled(args=*<1 or N object>,
|
|||
no_titlebar=False,
|
||||
grab_anywhere=False,
|
||||
keep_on_top=False,
|
||||
font=None)
|
||||
font=None,
|
||||
image=None)
|
||||
```
|
||||
|
||||
Parameter Descriptions:
|
||||
|
@ -1530,6 +1535,7 @@ Parameter Descriptions:
|
|||
| bool | grab_anywhere | If True, than can grab anywhere to move the window (Default = False) |
|
||||
| bool | keep_on_top | If True the window will remain above all current windows |
|
||||
| Union[str, Tuple[str, int]] | font | specifies the font family, size, etc |
|
||||
| str) or (bytes | image | Image to include at the top of the popup window |
|
||||
| Union[str, None, TIMEOUT_KEY] | **RETURN** | Returns text of the button that was pressed. None will be returned if user closed window with X
|
||||
|
||||
Typical usage:
|
||||
|
@ -1570,7 +1576,8 @@ popup_no_wait(args=*<1 or N object>,
|
|||
no_titlebar=False,
|
||||
grab_anywhere=False,
|
||||
keep_on_top=False,
|
||||
location=(None, None))
|
||||
location=(None, None),
|
||||
image=None)
|
||||
```
|
||||
|
||||
Parameter Descriptions:
|
||||
|
@ -1592,6 +1599,7 @@ Parameter Descriptions:
|
|||
| bool | no_titlebar | If True no titlebar will be shown |
|
||||
| bool | grab_anywhere | If True: can grab anywhere to move the window (Default = False) |
|
||||
| Tuple[int, int] | location | Location of upper left corner of the window |
|
||||
| str) or (bytes | image | Image to include at the top of the popup window |
|
||||
| Union[str, None] | **RETURN** | Reason for popup closing
|
||||
|
||||
The `popup` call `popup_no_wait` or `popup_non_blocking` will create a popup window and then immediately return control back to you. You can turn other popup calls into non-blocking popups if they have a `non_blocking` parameter. Setting `non_blocking` to True will cause the function to return immediately rather than waiting for the window to be closed.
|
||||
|
@ -1631,7 +1639,8 @@ popup_get_text(message,
|
|||
no_titlebar=False,
|
||||
grab_anywhere=False,
|
||||
keep_on_top=False,
|
||||
location=(None, None))
|
||||
location=(None, None),
|
||||
image=None)
|
||||
```
|
||||
|
||||
Parameter Descriptions:
|
||||
|
@ -1652,6 +1661,7 @@ Parameter Descriptions:
|
|||
| bool | grab_anywhere | If True can click and drag anywhere in the window to move the window |
|
||||
| bool | keep_on_top | If True the window will remain above all current windows |
|
||||
| Tuple[int, int] | location | (x,y) Location on screen to display the upper left corner of window |
|
||||
| str) or (bytes | image | Image to include at the top of the popup window |
|
||||
| Union[str, None] | **RETURN** | Text entered or None if window was closed or cancel button clicked
|
||||
|
||||
```python
|
||||
|
@ -1689,7 +1699,8 @@ popup_get_file(message,
|
|||
grab_anywhere=False,
|
||||
keep_on_top=False,
|
||||
location=(None, None),
|
||||
initial_folder=None)
|
||||
initial_folder=None,
|
||||
image=None)
|
||||
```
|
||||
|
||||
Parameter Descriptions:
|
||||
|
@ -1715,6 +1726,7 @@ Parameter Descriptions:
|
|||
| bool | keep_on_top | If True the window will remain above all current windows |
|
||||
| Tuple[int, int] | location | Location of upper left corner of the window |
|
||||
| str | initial_folder | location in filesystem to begin browsing |
|
||||
| str) or (bytes | image | Image to include at the top of the popup window |
|
||||
| Union[str, None] | **RETURN** | string representing the file(s) chosen, None if cancelled or window closed with X
|
||||
|
||||
If configured as an Open File Popup then (save_as is not True) the dialog box will look like this.
|
||||
|
@ -1757,7 +1769,8 @@ popup_get_folder(message,
|
|||
grab_anywhere=False,
|
||||
keep_on_top=False,
|
||||
location=(None, None),
|
||||
initial_folder=None)
|
||||
initial_folder=None,
|
||||
image=None)
|
||||
```
|
||||
|
||||
Parameter Descriptions:
|
||||
|
@ -1779,6 +1792,7 @@ Parameter Descriptions:
|
|||
| bool | keep_on_top | If True the window will remain above all current windows |
|
||||
| Tuple[int, int] | location | Location of upper left corner of the window |
|
||||
| str | initial_folder | location in filesystem to begin browsing |
|
||||
| str) or (bytes | image | Image to include at the top of the popup window |
|
||||
| Union[str, None] | **RETURN** | string representing the path chosen, None if cancelled or window closed with X
|
||||
|
||||
This is a typical call
|
||||
|
@ -7273,6 +7287,33 @@ More cprint stuff
|
|||
* Can now easily "print" to anywhere, in color!
|
||||
|
||||
|
||||
## 4.23.0 PySimpleGUI 3-Jul-2020
|
||||
|
||||
Table Colors Fix - workaround for problems with tables and tree colors in Python 3.7.2 to 3.9+
|
||||
Mac crash fixed - tkinter.TclError: expected boolean value but got "" (hopefully)
|
||||
New shortcut "k" parameter for all elements that is the same as "key" - may be experimental / temporary if not well received
|
||||
More error checks
|
||||
popup extensions
|
||||
|
||||
* Fix for missing Table and Tree colors created in tk 8.6.9
|
||||
* This is a problem in all versions of Python 3.7.2 - 3.9.0 with no target fix date published
|
||||
* As a result of no fixes in sight, added a fix in PySimpleGUI if the tk version is 8.6.9
|
||||
* New Element creation parameter "k" - exact same thing as "key" but shorter. Helps with complex layouts
|
||||
* New error reporting on all element.update calls - checks to see if element has been fully created
|
||||
* set_options - new option to supress popup_errors coming from PySimpleGUI.py
|
||||
* Mac specific crash fix - if on a Mac, no longer calling wm_overrideredirect as it crashes the Mac now
|
||||
* Additional error checking (shows error instead of asserting:
|
||||
* Check for Widget creation before widget operations like bind, unbind, expand
|
||||
* Check for window finalize / read before some window operations like maximize, hide, etc
|
||||
* docstrings - more added. Fixed up a number of missing / erroneous ones
|
||||
* Tree element - caches images so that will not create new ones if previously used on another Tree item
|
||||
* popup - two new options
|
||||
* any_key_closes - bool. If True, any key pressed will close the window
|
||||
* image - can be a bytes (base64) or string (filename). Image will be shown at top of the popup
|
||||
* all popups - new image parameter (base64 or string)
|
||||
* a few new built-in icons
|
||||
|
||||
|
||||
### Upcoming
|
||||
|
||||
There will always be overlapping work as the ports will never actually be "complete" as there's always something new that can be built. However there's a definition for the base functionality for PySimpleGUI. This is what is being strived for with the current ports that are underway.
|
||||
|
|
Loading…
Reference in New Issue