diff --git a/PySimpleGUI.py b/PySimpleGUI.py index d099bb6c..213be095 100644 --- a/PySimpleGUI.py +++ b/PySimpleGUI.py @@ -1,6 +1,6 @@ #!/usr/bin/python3 -version = __version__ = "4.14.1.11 Unreleased - added events for Calendar button but may remove, changed how bring_to_front works on Windows, SetIcon bug fix, Fix for closing window with X on Linux - requires update, allow progress bar values > max, checkbox & radio color computation, changed all 'white' and 'black' in themes to hex, extend_layout, added delete method for Output element, fix for closing debug window with an X in some circumstances, theme text elem background color" +version = __version__ = "4.15.0 Released 08-Jan-2020" port = 'PySimpleGUI' @@ -1924,8 +1924,6 @@ class Text(Element): self.RightClickMenu = right_click_menu self.TKRightClickMenu = None self.BorderWidth = border_width - # if text == '' and size == (None, None): - # size = DEFAULT_ELEMENT_SIZE super().__init__(ELEM_TYPE_TEXT, size, auto_size_text, background_color=bg, font=font if font else DEFAULT_FONT, text_color=self.TextColor, pad=pad, key=key, tooltip=tooltip, visible=visible, metadata=metadata) @@ -7325,7 +7323,7 @@ def DummyButton(button_text, image_filename=None, image_data=None, image_size=(N # ------------------------- Calendar Chooser Button lazy function ------------------------- # def CalendarButton(button_text, target=(None, None), close_when_date_chosen=True, default_date_m_d_y=(None, None, None), image_filename=None, image_data=None, image_size=(None, None), - image_subsample=None, tooltip=None, border_width=None, size=(None, None), auto_size_button=None, enable_events=None, + image_subsample=None, tooltip=None, border_width=None, size=(None, None), auto_size_button=None, button_color=None, disabled=False, font=None, bind_return_key=False, focus=False, pad=None, key=None, locale=None, format=None, metadata=None): """ @@ -7356,7 +7354,7 @@ def CalendarButton(button_text, target=(None, None), close_when_date_chosen=True """ button = Button(button_text=button_text, button_type=BUTTON_TYPE_CALENDAR_CHOOSER, target=target, image_filename=image_filename, image_data=image_data, image_size=image_size, - image_subsample=image_subsample, border_width=border_width, tooltip=tooltip, size=size, enable_events=enable_events, + image_subsample=image_subsample, border_width=border_width, tooltip=tooltip, size=size, auto_size_button=auto_size_button, button_color=button_color, font=font, disabled=disabled, bind_return_key=bind_return_key, focus=focus, pad=pad, key=key, metadata=metadata) button.CalendarCloseWhenChosen = close_when_date_chosen diff --git a/docs/index.md b/docs/index.md index 8c67e602..8574c99d 100644 --- a/docs/index.md +++ b/docs/index.md @@ -2,7 +2,7 @@ [![Downloads](http://pepy.tech/badge/pysimplegui)](http://pepy.tech/project/pysimplegui) tkinter -[![Downloads ](https://pepy.tech/badge/pysimplegui27)](https://pepy.tech/project/pysimplegui27) tkinter 2.7 (WARNING - DISAPPEARING Entirely on 12/31/2019!!!) +[![Downloads ](https://pepy.tech/badge/pysimplegui27)](https://pepy.tech/project/pysimplegui27) tkinter 2.7 [![Downloads](https://pepy.tech/badge/pysimpleguiqt)](https://pepy.tech/project/pysimpleguiqt) Qt @@ -14,8 +14,7 @@ ![Awesome Meter](https://img.shields.io/badge/Awesome_meter-100-yellow.svg) ![Python Version](https://img.shields.io/badge/Python-2.7_3.x-yellow.svg) -![Python Version](https://img.shields.io/badge/PySimpleGUI_For_Python_3.x_Version-4.14.0-red.svg?longCache=true&style=for-the-badge) -![Python Version](https://img.shields.io/badge/PySimpleGUI_For_Python_2.7_Version-2.4.1-blue.svg?longCache=true&style=for-the-badge) +![Python Version](https://img.shields.io/badge/PySimpleGUI_For_Python_3.x_Version-4.15.0-red.svg?longCache=true&style=for-the-badge) ![Python Version](https://img.shields.io/badge/PySimpleGUIQt_Version-0.30.0-orange.svg?longCache=true&style=for-the-badge) ![Python Version](https://img.shields.io/badge/PySimpleGUIWx_version-0.14.0-orange.svg?longCache=true&style=for-the-badge) @@ -7391,7 +7390,8 @@ DrawArc(top_left, extent, start_angle, style=None, - arc_color="black") + arc_color="black", + line_width=1) ``` Parameter Descriptions: @@ -7784,6 +7784,22 @@ Parameter Descriptions: |---|---| |event|(unknown) Not used in this function.| +### change_coordinates + +Changes the corrdinate system to a new one. The same 2 points in space are used to define the coorinate +system - the bottom left and the top right values of your graph. + +``` +change_coordinates(graph_bottom_left, graph_top_right) +``` + +Parameter Descriptions: + +|Name|Meaning| +|---|---| +|graph_bottom_left|Tuple[int, int] (x,y) The bottoms left corner of your coordinate system| +|graph_top_right|Tuple[int, int] (x,y) The top right corner of your coordinate system| + ### delete_figure Remove from the Graph the figure represented by id. The id is given to you anytime you call a drawing primitive @@ -7808,7 +7824,8 @@ draw_arc(top_left, extent, start_angle, style=None, - arc_color="black") + arc_color="black", + line_width=1) ``` Parameter Descriptions: @@ -14177,6 +14194,23 @@ Enables the internal debugger. By default, the debugger IS enabled enable_debugger() ``` +### extend_layout + +Adds new rows to an existing container element inside of this window + +``` +extend_layout(container, rows) +``` + +Parameter Descriptions: + +|Name|Meaning| +|---|---| +|container|(Union[Frame, Column, Tab]) - The container Element the layout will be placed inside of| +|rows|(List[List[Element]]) - The layout to be added| +||| +| **return** | (Window) self so could be chained | + ### fill Fill in elements that are input fields with data based on a 'values dictionary' @@ -15846,6 +15880,10 @@ Parameter Descriptions: |size|Tuple[int, int] (w,h) w=characters-wide, h=rows-high (Default value = DEFAULT_PROGRESS_BAR_SIZE)| |border_width|width of border around element| |grab_anywhere|If True can grab anywhere to move the window (Default = False)| +||| +| **return** | (bool) True if updated successfully. False if user closed the meter with the X or Cancel button | + +Cancels and closes a previously created One Line Progress Meter window ``` OneLineProgressMeterCancel(key) @@ -15855,7 +15893,7 @@ Parameter Descriptions: |Name|Meaning| |---|---| -|key|Used with window.FindElement and with return values to uniquely identify this element| +|key|Key used when meter was created| ``` one_line_progress_meter(title, @@ -15886,6 +15924,10 @@ Parameter Descriptions: |size|Tuple[int, int] (w,h) w=characters-wide, h=rows-high (Default value = DEFAULT_PROGRESS_BAR_SIZE)| |border_width|width of border around element| |grab_anywhere|If True can grab anywhere to move the window (Default = False)| +||| +| **return** | (bool) True if updated successfully. False if user closed the meter with the X or Cancel button | + +Cancels and closes a previously created One Line Progress Meter window ``` one_line_progress_meter_cancel(key) @@ -15895,7 +15937,7 @@ Parameter Descriptions: |Name|Meaning| |---|---| -|key|Used with window.FindElement and with return values to uniquely identify this element| +|key|Key used when meter was created| ## Popup Functions @@ -18001,6 +18043,12 @@ Sets/Returns the text color currently in use theme_text_color(color=None) -> (str) - color string of the text color currently in use ``` +Sets/Returns the background color for text elements + +``` +theme_text_element_background_color(color=None) -> (str) - color string of the text background color currently in use +``` + ## Old Themes (Look and Feel) - Replaced by theme() Change the "color scheme" of all future PySimpleGUI Windows. @@ -19378,6 +19426,33 @@ THEMES! * Tree heading font now defaults correctly * Renamed DebugWin to _DebugWin to discourage use +## 4.15.0 PySimpleGUI 08-Jan-2020 + +Dynamic Window Layouts! Extend your layouts with `Window.extend_layout` +Lots of fixes + +* Window.extend_layout +* Graph.change_coordinates - realtime change of coordinate systems for the Graph element +* theme_text_element_background_color - new function to expose this setting +* Radio & Checkbox colors changed to be ligher/darker than background +* Progress bar - allow updates of value > max value +* Output element does deletes now so that cleanup works. Can use in multiple windows as a result +* DrawArc (draw_arc) - New width / line width parameter +* RGB does more error checking, converts types +* More descriptive errors for find element +* popup_error used interally now sets keep on top +* Element Re-use wording changed so that it's clear the element is the problem not the layout when re-use detected +* Window.Close (Window.close) - fix for not immediately seeing the window disappear on Linux when clicking "X" +* Window.BringToFront (bring_to_front) - on Windows needed to use topmost to bring window to front insteade of lift +* Multiline Scrollbar - removed the scrollbar color. It doesn't work on Windows so keeping consistent +* Changed how Debug Windows are created. Uses finalize now instead of the read non-blocking +* Fix for Debug Window being closed by X causing main window to also close +* Changed all "black" and "white" in the Look and Feel table to #000000 and #FFFFFF +* Added new color processing functions for internal use (hsl and hsv related) +* popup - extended the automatic wrapping capabilities to messages containing \n +* Test harness uses a nicer colors for event, value print outs. +* _timeit decorator for timing functions + ### 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 currnt ports that are underway. diff --git a/readme.md b/readme.md index 8c67e602..8574c99d 100644 --- a/readme.md +++ b/readme.md @@ -2,7 +2,7 @@ [![Downloads](http://pepy.tech/badge/pysimplegui)](http://pepy.tech/project/pysimplegui) tkinter -[![Downloads ](https://pepy.tech/badge/pysimplegui27)](https://pepy.tech/project/pysimplegui27) tkinter 2.7 (WARNING - DISAPPEARING Entirely on 12/31/2019!!!) +[![Downloads ](https://pepy.tech/badge/pysimplegui27)](https://pepy.tech/project/pysimplegui27) tkinter 2.7 [![Downloads](https://pepy.tech/badge/pysimpleguiqt)](https://pepy.tech/project/pysimpleguiqt) Qt @@ -14,8 +14,7 @@ ![Awesome Meter](https://img.shields.io/badge/Awesome_meter-100-yellow.svg) ![Python Version](https://img.shields.io/badge/Python-2.7_3.x-yellow.svg) -![Python Version](https://img.shields.io/badge/PySimpleGUI_For_Python_3.x_Version-4.14.0-red.svg?longCache=true&style=for-the-badge) -![Python Version](https://img.shields.io/badge/PySimpleGUI_For_Python_2.7_Version-2.4.1-blue.svg?longCache=true&style=for-the-badge) +![Python Version](https://img.shields.io/badge/PySimpleGUI_For_Python_3.x_Version-4.15.0-red.svg?longCache=true&style=for-the-badge) ![Python Version](https://img.shields.io/badge/PySimpleGUIQt_Version-0.30.0-orange.svg?longCache=true&style=for-the-badge) ![Python Version](https://img.shields.io/badge/PySimpleGUIWx_version-0.14.0-orange.svg?longCache=true&style=for-the-badge) @@ -7391,7 +7390,8 @@ DrawArc(top_left, extent, start_angle, style=None, - arc_color="black") + arc_color="black", + line_width=1) ``` Parameter Descriptions: @@ -7784,6 +7784,22 @@ Parameter Descriptions: |---|---| |event|(unknown) Not used in this function.| +### change_coordinates + +Changes the corrdinate system to a new one. The same 2 points in space are used to define the coorinate +system - the bottom left and the top right values of your graph. + +``` +change_coordinates(graph_bottom_left, graph_top_right) +``` + +Parameter Descriptions: + +|Name|Meaning| +|---|---| +|graph_bottom_left|Tuple[int, int] (x,y) The bottoms left corner of your coordinate system| +|graph_top_right|Tuple[int, int] (x,y) The top right corner of your coordinate system| + ### delete_figure Remove from the Graph the figure represented by id. The id is given to you anytime you call a drawing primitive @@ -7808,7 +7824,8 @@ draw_arc(top_left, extent, start_angle, style=None, - arc_color="black") + arc_color="black", + line_width=1) ``` Parameter Descriptions: @@ -14177,6 +14194,23 @@ Enables the internal debugger. By default, the debugger IS enabled enable_debugger() ``` +### extend_layout + +Adds new rows to an existing container element inside of this window + +``` +extend_layout(container, rows) +``` + +Parameter Descriptions: + +|Name|Meaning| +|---|---| +|container|(Union[Frame, Column, Tab]) - The container Element the layout will be placed inside of| +|rows|(List[List[Element]]) - The layout to be added| +||| +| **return** | (Window) self so could be chained | + ### fill Fill in elements that are input fields with data based on a 'values dictionary' @@ -15846,6 +15880,10 @@ Parameter Descriptions: |size|Tuple[int, int] (w,h) w=characters-wide, h=rows-high (Default value = DEFAULT_PROGRESS_BAR_SIZE)| |border_width|width of border around element| |grab_anywhere|If True can grab anywhere to move the window (Default = False)| +||| +| **return** | (bool) True if updated successfully. False if user closed the meter with the X or Cancel button | + +Cancels and closes a previously created One Line Progress Meter window ``` OneLineProgressMeterCancel(key) @@ -15855,7 +15893,7 @@ Parameter Descriptions: |Name|Meaning| |---|---| -|key|Used with window.FindElement and with return values to uniquely identify this element| +|key|Key used when meter was created| ``` one_line_progress_meter(title, @@ -15886,6 +15924,10 @@ Parameter Descriptions: |size|Tuple[int, int] (w,h) w=characters-wide, h=rows-high (Default value = DEFAULT_PROGRESS_BAR_SIZE)| |border_width|width of border around element| |grab_anywhere|If True can grab anywhere to move the window (Default = False)| +||| +| **return** | (bool) True if updated successfully. False if user closed the meter with the X or Cancel button | + +Cancels and closes a previously created One Line Progress Meter window ``` one_line_progress_meter_cancel(key) @@ -15895,7 +15937,7 @@ Parameter Descriptions: |Name|Meaning| |---|---| -|key|Used with window.FindElement and with return values to uniquely identify this element| +|key|Key used when meter was created| ## Popup Functions @@ -18001,6 +18043,12 @@ Sets/Returns the text color currently in use theme_text_color(color=None) -> (str) - color string of the text color currently in use ``` +Sets/Returns the background color for text elements + +``` +theme_text_element_background_color(color=None) -> (str) - color string of the text background color currently in use +``` + ## Old Themes (Look and Feel) - Replaced by theme() Change the "color scheme" of all future PySimpleGUI Windows. @@ -19378,6 +19426,33 @@ THEMES! * Tree heading font now defaults correctly * Renamed DebugWin to _DebugWin to discourage use +## 4.15.0 PySimpleGUI 08-Jan-2020 + +Dynamic Window Layouts! Extend your layouts with `Window.extend_layout` +Lots of fixes + +* Window.extend_layout +* Graph.change_coordinates - realtime change of coordinate systems for the Graph element +* theme_text_element_background_color - new function to expose this setting +* Radio & Checkbox colors changed to be ligher/darker than background +* Progress bar - allow updates of value > max value +* Output element does deletes now so that cleanup works. Can use in multiple windows as a result +* DrawArc (draw_arc) - New width / line width parameter +* RGB does more error checking, converts types +* More descriptive errors for find element +* popup_error used interally now sets keep on top +* Element Re-use wording changed so that it's clear the element is the problem not the layout when re-use detected +* Window.Close (Window.close) - fix for not immediately seeing the window disappear on Linux when clicking "X" +* Window.BringToFront (bring_to_front) - on Windows needed to use topmost to bring window to front insteade of lift +* Multiline Scrollbar - removed the scrollbar color. It doesn't work on Windows so keeping consistent +* Changed how Debug Windows are created. Uses finalize now instead of the read non-blocking +* Fix for Debug Window being closed by X causing main window to also close +* Changed all "black" and "white" in the Look and Feel table to #000000 and #FFFFFF +* Added new color processing functions for internal use (hsl and hsv related) +* popup - extended the automatic wrapping capabilities to messages containing \n +* Test harness uses a nicer colors for event, value print outs. +* _timeit decorator for timing functions + ### 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 currnt ports that are underway.