Release 4.26.0

This commit is contained in:
PySimpleGUI 2020-07-18 15:34:48 -04:00
parent 530e28a048
commit e6d0eca440
4 changed files with 25 additions and 17 deletions

View File

@ -1,6 +1,6 @@
#!/usr/bin/python3 #!/usr/bin/python3
version = __version__ = "4.25.0.1 Unreleased\nMoved creation of the multi-threaded " version = __version__ = "4.26.0 Released 18-Jul-2020"
port = 'PySimpleGUI' port = 'PySimpleGUI'
@ -6973,7 +6973,6 @@ class Window:
self.user_bind_event = None # Used when user defines a tkinter binding using bind method - event data from tkinter self.user_bind_event = None # Used when user defines a tkinter binding using bind method - event data from tkinter
self.modal = modal self.modal = modal
self.thread_queue = None # type: queue.Queue self.thread_queue = None # type: queue.Queue
self.thread_key = None # type: Any
self.thread_strvar = None # type: tk.StringVar self.thread_strvar = None # type: tk.StringVar
self.read_closed_window_count = 0 self.read_closed_window_count = 0
@ -8295,15 +8294,11 @@ class Window:
def _create_thread_queue(self, key): def _create_thread_queue(self):
""" """
Sets the key that will be returned if a thread communicates with this window. Creates the queue used by threads to communicate with this window
:param key:
:type key: Any
""" """
self.thread_key = key
if self.thread_queue is None: if self.thread_queue is None:
self.thread_queue = queue.Queue() self.thread_queue = queue.Queue()
@ -8312,7 +8307,7 @@ class Window:
self.thread_strvar.trace('w', self._window_tkvar_changed_callback) self.thread_strvar.trace('w', self._window_tkvar_changed_callback)
def write_event_value(self, key=None, value=None): def write_event_value(self, key, value):
""" """
Adds a key & value tuple to the queue that is used by threads to communicate with the window Adds a key & value tuple to the queue that is used by threads to communicate with the window
@ -8323,10 +8318,9 @@ class Window:
""" """
if self.thread_queue is None: if self.thread_queue is None:
self._create_thread_queue(key) print('*** Warning Window.write_event_value - no thread queue found ***')
return
if self.thread_queue:
key = key if key is not None else self.thread_key
self.thread_queue.put(item=(key, value)) self.thread_queue.put(item=(key, value))
self.thread_strvar.set('new item') self.thread_strvar.set('new item')
@ -12045,7 +12039,7 @@ def StartupTK(my_flex_form):
my_flex_form.TKroot = root my_flex_form.TKroot = root
my_flex_form._create_thread_queue('initialized queue') my_flex_form._create_thread_queue()
# Make moveable window # Make moveable window
if (my_flex_form.GrabAnywhere is not False and not ( if (my_flex_form.GrabAnywhere is not False and not (

View File

@ -3434,7 +3434,7 @@ Parameter Descriptions:
|Type|Name|Meaning| |Type|Name|Meaning|
|--|--|--| |--|--|--|
| str | default_text | Text initially shown in the input box as a default value(Default value = '') | | Any | default_text | Text initially shown in the input box as a default value(Default value = ''). Will automatically be converted to string |
| (int, int) (width, height) | size | w=characters-wide, h=rows-high | | (int, int) (width, height) | size | w=characters-wide, h=rows-high |
| bool | disabled | set disable state for element (Default = False) | | bool | disabled | set disable state for element (Default = False) |
| char | password_char | Password character if this is a password field (Default value = '') | | char | password_char | Password character if this is a password field (Default value = '') |
@ -9869,7 +9869,7 @@ Returns True if the window was closed
Adds a key & value tuple to the queue that is used by threads to communicate with the window Adds a key & value tuple to the queue that is used by threads to communicate with the window
``` ```
write_event_value(key=None, value=None) write_event_value(key, value)
``` ```
Parameter Descriptions: Parameter Descriptions:

View File

@ -7384,6 +7384,13 @@ k element parameter
* New global variable __tclversion_detailed__ - string with full tkinter version (3 numbers instead of 2) * New global variable __tclversion_detailed__ - string with full tkinter version (3 numbers instead of 2)
* Warning is displayed if tcl version is found to be 8.5. * Warning is displayed if tcl version is found to be 8.5.
## 4.26.0 PySimpleGUI 18-Jul-2020
* Multi-threaded tkvar initialization location changed so that thread doesn't intialize it now
* Removed thread key - no longer needed
* Window.write_event_values - now requires both parms
* Upgrade button typo
### Upcoming ### 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. 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.

View File

@ -7384,6 +7384,13 @@ k element parameter
* New global variable __tclversion_detailed__ - string with full tkinter version (3 numbers instead of 2) * New global variable __tclversion_detailed__ - string with full tkinter version (3 numbers instead of 2)
* Warning is displayed if tcl version is found to be 8.5. * Warning is displayed if tcl version is found to be 8.5.
## 4.26.0 PySimpleGUI 18-Jul-2020
* Multi-threaded tkvar initialization location changed so that thread doesn't intialize it now
* Removed thread key - no longer needed
* Window.write_event_values - now requires both parms
* Upgrade button typo
### Upcoming ### 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. 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.