Merge pull request #5325 from PySimpleGUI/Dev-latest
Fixed problem when elements went from disabled to enabled but events …
This commit is contained in:
		
						commit
						d32497b083
					
				
					 1 changed files with 29 additions and 15 deletions
				
			
		|  | @ -1,10 +1,14 @@ | ||||||
| #!/usr/bin/python3 | #!/usr/bin/python3 | ||||||
| 
 | 
 | ||||||
| version = __version__ = "4.58.0 Released 4-Apr-2022" | version = __version__ = "4.58.0.2 Unreleased" | ||||||
| 
 | 
 | ||||||
| _change_log = """ | _change_log = """ | ||||||
|     Changelog since 4.58.0 released to PyPI on 4-Apr-2022 |     Changelog since 4.58.0 released to PyPI on 4-Apr-2022 | ||||||
|      |      | ||||||
|  |     4.58.0.1 | ||||||
|  |         Removed ttk theme from the test harness. Forgot that I had changed it for testing. | ||||||
|  |     4.58.0.2 | ||||||
|  |         Fixed bug where disabled state was not corretly saved in update methods, causing events to not be generated (Thank you Jason, again!) | ||||||
|     """ |     """ | ||||||
| 
 | 
 | ||||||
| __version__ = version.split()[0]  # For PEP 396 and PEP 345 | __version__ = version.split()[0]  # For PEP 396 and PEP 345 | ||||||
|  | @ -1841,6 +1845,8 @@ class Input(Element): | ||||||
|             self.TKEntry['state'] = 'readonly' if self.UseReadonlyForDisable else 'disabled' |             self.TKEntry['state'] = 'readonly' if self.UseReadonlyForDisable else 'disabled' | ||||||
|         elif disabled is False: |         elif disabled is False: | ||||||
|             self.TKEntry['state'] = 'readonly' if self.ReadOnly else 'normal' |             self.TKEntry['state'] = 'readonly' if self.ReadOnly else 'normal' | ||||||
|  |         self.Disabled = disabled if disabled is not None else self.Disabled | ||||||
|  | 
 | ||||||
|         if background_color not in (None, COLOR_SYSTEM_DEFAULT): |         if background_color not in (None, COLOR_SYSTEM_DEFAULT): | ||||||
|             self.TKEntry.configure(background=background_color) |             self.TKEntry.configure(background=background_color) | ||||||
|         if text_color not in (None, COLOR_SYSTEM_DEFAULT): |         if text_color not in (None, COLOR_SYSTEM_DEFAULT): | ||||||
|  | @ -2230,10 +2236,11 @@ class OptionMenu(Element): | ||||||
|             self.DefaultValue = value |             self.DefaultValue = value | ||||||
|             self.TKStringVar.set(value) |             self.TKStringVar.set(value) | ||||||
| 
 | 
 | ||||||
|         if disabled == True: |         if disabled is True: | ||||||
|             self.TKOptionMenu['state'] = 'disabled' |             self.TKOptionMenu['state'] = 'disabled' | ||||||
|         elif disabled == False: |         elif disabled is False: | ||||||
|             self.TKOptionMenu['state'] = 'normal' |             self.TKOptionMenu['state'] = 'normal' | ||||||
|  |         self.Disabled = disabled if disabled is not None else self.Disabled | ||||||
|         if visible is False: |         if visible is False: | ||||||
|             self._pack_forget_save_settings() |             self._pack_forget_save_settings() | ||||||
|             # self.TKOptionMenu.pack_forget() |             # self.TKOptionMenu.pack_forget() | ||||||
|  | @ -2386,6 +2393,8 @@ class Listbox(Element): | ||||||
|             self.TKListbox.configure(state='disabled') |             self.TKListbox.configure(state='disabled') | ||||||
|         elif disabled is False: |         elif disabled is False: | ||||||
|             self.TKListbox.configure(state='normal') |             self.TKListbox.configure(state='normal') | ||||||
|  |         self.Disabled = disabled if disabled is not None else self.Disabled | ||||||
|  | 
 | ||||||
|         if values is not None: |         if values is not None: | ||||||
|             self.TKListbox.delete(0, 'end') |             self.TKListbox.delete(0, 'end') | ||||||
|             for item in list(values): |             for item in list(values): | ||||||
|  | @ -2649,6 +2658,8 @@ class Radio(Element): | ||||||
|             self.TKRadio['state'] = 'disabled' |             self.TKRadio['state'] = 'disabled' | ||||||
|         elif disabled is False: |         elif disabled is False: | ||||||
|             self.TKRadio['state'] = 'normal' |             self.TKRadio['state'] = 'normal' | ||||||
|  |         self.Disabled = disabled if disabled is not None else self.Disabled | ||||||
|  | 
 | ||||||
|         if visible is False: |         if visible is False: | ||||||
|             self._pack_forget_save_settings() |             self._pack_forget_save_settings() | ||||||
|         elif visible is True: |         elif visible is True: | ||||||
|  | @ -2819,10 +2830,12 @@ class Checkbox(Element): | ||||||
|                 self.InitialState = value |                 self.InitialState = value | ||||||
|             except: |             except: | ||||||
|                 print('Checkbox update failed') |                 print('Checkbox update failed') | ||||||
|         if disabled == True: |         if disabled is True: | ||||||
|             self.TKCheckbutton.configure(state='disabled') |             self.TKCheckbutton.configure(state='disabled') | ||||||
|         elif disabled == False: |         elif disabled is False: | ||||||
|             self.TKCheckbutton.configure(state='normal') |             self.TKCheckbutton.configure(state='normal') | ||||||
|  |         self.Disabled = disabled if disabled is not None else self.Disabled | ||||||
|  | 
 | ||||||
|         if text is not None: |         if text is not None: | ||||||
|             self.Text = str(text) |             self.Text = str(text) | ||||||
|             self.TKCheckbutton.configure(text=self.Text) |             self.TKCheckbutton.configure(text=self.Text) | ||||||
|  | @ -3005,6 +3018,7 @@ class Spin(Element): | ||||||
|                 self.TKSpinBox['state'] = 'readonly' |                 self.TKSpinBox['state'] = 'readonly' | ||||||
|             else: |             else: | ||||||
|                 self.TKSpinBox['state'] = 'normal' |                 self.TKSpinBox['state'] = 'normal' | ||||||
|  |         self.Disabled = disabled if disabled is not None else self.Disabled | ||||||
| 
 | 
 | ||||||
|         if visible is False: |         if visible is False: | ||||||
|             self._pack_forget_save_settings() |             self._pack_forget_save_settings() | ||||||
|  | @ -3274,10 +3288,10 @@ class Multiline(Element): | ||||||
|             self.TKText.see(tk.END) |             self.TKText.see(tk.END) | ||||||
|         if disabled is True: |         if disabled is True: | ||||||
|             self.TKText.configure(state='disabled') |             self.TKText.configure(state='disabled') | ||||||
|             self.Disabled = True |  | ||||||
|         elif disabled is False: |         elif disabled is False: | ||||||
|             self.TKText.configure(state='normal') |             self.TKText.configure(state='normal') | ||||||
|             self.Disabled = False |         self.Disabled = disabled if disabled is not None else self.Disabled | ||||||
|  | 
 | ||||||
|         if background_color not in (None, COLOR_SYSTEM_DEFAULT): |         if background_color not in (None, COLOR_SYSTEM_DEFAULT): | ||||||
|             self.TKText.configure(background=background_color) |             self.TKText.configure(background=background_color) | ||||||
|         if text_color not in (None, COLOR_SYSTEM_DEFAULT): |         if text_color not in (None, COLOR_SYSTEM_DEFAULT): | ||||||
|  | @ -4737,13 +4751,12 @@ class Button(Element): | ||||||
|             self.ButtonColor = bc |             self.ButtonColor = bc | ||||||
|         if disabled is True: |         if disabled is True: | ||||||
|             self.TKButton['state'] = 'disabled' |             self.TKButton['state'] = 'disabled' | ||||||
|             self.Disabled = True |  | ||||||
|         elif disabled is False: |         elif disabled is False: | ||||||
|             self.TKButton['state'] = 'normal' |             self.TKButton['state'] = 'normal' | ||||||
|             self.Disabled = False |  | ||||||
|         elif disabled == BUTTON_DISABLED_MEANS_IGNORE: |         elif disabled == BUTTON_DISABLED_MEANS_IGNORE: | ||||||
|             self.TKButton['state'] = 'normal' |             self.TKButton['state'] = 'normal' | ||||||
|             self.Disabled = BUTTON_DISABLED_MEANS_IGNORE |         self.Disabled = disabled if disabled is not None else self.Disabled | ||||||
|  | 
 | ||||||
|         if image_data is not None: |         if image_data is not None: | ||||||
|             image = tk.PhotoImage(data=image_data) |             image = tk.PhotoImage(data=image_data) | ||||||
|             if image_subsample: |             if image_subsample: | ||||||
|  | @ -7329,10 +7342,11 @@ class Slider(Element): | ||||||
|             except: |             except: | ||||||
|                 pass |                 pass | ||||||
|             self.DefaultValue = value |             self.DefaultValue = value | ||||||
|         if disabled == True: |         if disabled is True: | ||||||
|             self.TKScale['state'] = 'disabled' |             self.TKScale['state'] = 'disabled' | ||||||
|         elif disabled == False: |         elif disabled is False: | ||||||
|             self.TKScale['state'] = 'normal' |             self.TKScale['state'] = 'normal' | ||||||
|  |         self.Disabled = disabled if disabled is not None else self.Disabled | ||||||
| 
 | 
 | ||||||
|         if visible is False: |         if visible is False: | ||||||
|             self._pack_forget_save_settings() |             self._pack_forget_save_settings() | ||||||
|  | @ -17157,7 +17171,7 @@ def set_options(icon=None, button_color=None, element_size=(None, None), button_ | ||||||
|     :param suppress_key_guessing:           If True then key errors won't try and find closest matches for you |     :param suppress_key_guessing:           If True then key errors won't try and find closest matches for you | ||||||
|     :type suppress_key_guessing:            (bool) |     :type suppress_key_guessing:            (bool) | ||||||
|     :param warn_button_key_duplicates:      If True then duplicate Button Keys generate warnings (not recommended as they're expected) |     :param warn_button_key_duplicates:      If True then duplicate Button Keys generate warnings (not recommended as they're expected) | ||||||
|     :type warn_button_key_duplicates:       (bool)     |     :type warn_button_key_duplicates:       (bool) | ||||||
|     :param enable_treeview_869_patch:       If True, then will use the treeview color patch for tk 8.6.9 |     :param enable_treeview_869_patch:       If True, then will use the treeview color patch for tk 8.6.9 | ||||||
|     :type enable_treeview_869_patch:        (bool) |     :type enable_treeview_869_patch:        (bool) | ||||||
|     :param enable_mac_notitlebar_patch:     If True then Windows with no titlebar use an alternative technique when tkinter version < 8.6.10 |     :param enable_mac_notitlebar_patch:     If True then Windows with no titlebar use an alternative technique when tkinter version < 8.6.10 | ||||||
|  | @ -23650,7 +23664,7 @@ def _create_main_window(): | ||||||
|                     finalize=True, |                     finalize=True, | ||||||
|                     grab_anywhere=True, |                     grab_anywhere=True, | ||||||
|                     enable_close_attempted_event=True, |                     enable_close_attempted_event=True, | ||||||
|                     ttk_theme=THEME_ALT, |                     # ttk_theme=THEME_ALT, | ||||||
|                     # icon=PSG_DEBUGGER_LOGO, |                     # icon=PSG_DEBUGGER_LOGO, | ||||||
|                     # icon=PSGDebugLogo, |                     # icon=PSGDebugLogo, | ||||||
|                     ) |                     ) | ||||||
|  | @ -23878,4 +23892,4 @@ if __name__ == '__main__': | ||||||
|         main_sdk_help() |         main_sdk_help() | ||||||
|         exit(0) |         exit(0) | ||||||
|     main() |     main() | ||||||
|     exit(0)  |     exit(0) | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue