From be1aa4f00a40947f3ea1ca3bdbcf7f65a0f75230 Mon Sep 17 00:00:00 2001 From: MikeTheWatchGuy Date: Sat, 3 Nov 2018 12:27:31 -0400 Subject: [PATCH] Release 3.14.1, 1.14.1 + new window feature disable_close --- PySimpleGUI.py | 11 +++++++---- PySimpleGUI27.py | 39 ++++++++++++++++++--------------------- 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/PySimpleGUI.py b/PySimpleGUI.py index 9cd6af67..0419ffe8 100644 --- a/PySimpleGUI.py +++ b/PySimpleGUI.py @@ -2702,7 +2702,7 @@ class Window: progress_bar_color=(None, None), background_color=None, border_depth=None, auto_close=False, auto_close_duration=DEFAULT_AUTOCLOSE_TIME, icon=DEFAULT_WINDOW_ICON, force_toplevel=False, alpha_channel=1, return_keyboard_events=False, use_default_focus=True, text_justification=None, - no_titlebar=False, grab_anywhere=False, keep_on_top=False, resizable=False): + no_titlebar=False, grab_anywhere=False, keep_on_top=False, resizable=False, disable_close=False): ''' Window :param title: @@ -2774,6 +2774,7 @@ class Window: self.Timeout = None self.TimeoutKey = '_timeout_' self.TimerCancelled = False + self.DisableClose = disable_close # ------------------------- Add ONE Row to Form ------------------------- # def AddRow(self, *args): @@ -3123,6 +3124,8 @@ class Window: # IT FINALLY WORKED! 29-Oct-2018 was the first time this damned thing got called def OnClosingCallback(self): + if self.DisableClose: + return # print('Got closing callback') self.TKroot.quit() # kick the users out of the mainloop if self.CurrentlyRunningMainloop: # quit if this is the current mainloop, otherwise don't quit! @@ -4679,9 +4682,9 @@ def StartupTK(my_flex_form): # hidden window _my_windows.Increment() _my_windows.hidden_master_root = tk.Tk() - _my_windows.hidden_master_root.attributes('-alpha', 0) # hide window while building it. makes for smoother 'paint' - _my_windows.hidden_master_root.wm_overrideredirect(True) - _my_windows.hidden_master_root.withdraw() + _my_windows.hidden_master_root.attributes('-alpha', 0) # HIDE this window really really really good + _my_windows.hidden_master_root.wm_overrideredirect(True) # damn, what did this do again? + _my_windows.hidden_master_root.withdraw() # no, REALLY hide it # root = tk.Tk() # users windows are no longer using tk.Tk. They are all Toplevel windows root = tk.Toplevel() else: diff --git a/PySimpleGUI27.py b/PySimpleGUI27.py index 671059c9..ee1cffbf 100644 --- a/PySimpleGUI27.py +++ b/PySimpleGUI27.py @@ -1224,10 +1224,7 @@ class Output(Element): # ---------------------------------------------------------------------- # class Button(Element): def __init__(self, button_text='', button_type=BUTTON_TYPE_READ_FORM, target=(None, None), tooltip=None, - file_types=(("ALL Files", "*.*"),), initial_folder=None, disabled=False, image_filename=None, - image_data=None, image_size=(None, None), image_subsample=None, border_width=None, size=(None, None), - auto_size_button=None, button_color=None, font=None, bind_return_key=False, - focus=False, pad=None, key=None): + file_types=(("ALL Files", "*.*"),), initial_folder=None, disabled=False, change_submits=False, image_filename=None, image_data=None, image_size=(None, None), image_subsample=None, border_width=None, size=(None, None), auto_size_button=None, button_color=None, font=None, bind_return_key=False, focus=False, pad=None, key=None): ''' Button Element :param button_text: @@ -1271,6 +1268,7 @@ class Button(Element): self.DefaultDate_M_D_Y = (None, None, None) self.InitialFolder = initial_folder self.Disabled = disabled + self.ChangeSubmits = change_submits super().__init__(ELEM_TYPE_BUTTON, size=size, font=font, pad=pad, key=key, tooltip=tooltip) return @@ -1530,7 +1528,7 @@ class Image(Element): tooltip=tooltip) return - def Update(self, filename=None, data=None): + def Update(self, filename=None, data=None, size=(None,None)): if filename is not None: image = tk.PhotoImage(file=filename) elif data is not None: @@ -1543,9 +1541,8 @@ class Image(Element): # image = data else: return - width, height = image.width(), image.height() + width, height = size[0] or image.width(), size[1] or image.height() self.tktext_label.configure(image=image, width=width, height=height) - # self.tktext_label.configure(image=image) self.tktext_label.image = image def __del__(self): @@ -3223,46 +3220,45 @@ FlexForm = Window # ------------------------- FOLDER BROWSE Element lazy function ------------------------- # def FolderBrowse(button_text='Browse', target=(ThisRow, -1), initial_folder=None, tooltip=None, size=(None, None), - auto_size_button=None, button_color=None, disabled=False, font=None, pad=None, key=None): + auto_size_button=None, button_color=None, disabled=False, change_submits=False, font=None, pad=None, key=None): return Button(button_text=button_text, button_type=BUTTON_TYPE_BROWSE_FOLDER, target=target, initial_folder=initial_folder, tooltip=tooltip, size=size, auto_size_button=auto_size_button, - disabled=disabled, button_color=button_color, font=font, pad=pad, key=key) + disabled=disabled, button_color=button_color,change_submits=change_submits, font=font, pad=pad, key=key) # ------------------------- FILE BROWSE Element lazy function ------------------------- # def FileBrowse(button_text='Browse', target=(ThisRow, -1), file_types=(("ALL Files", "*.*"),), initial_folder=None, - tooltip=None, size=(None, None), auto_size_button=None, button_color=None, font=None, disabled=False, + tooltip=None, size=(None, None), auto_size_button=None, button_color=None, change_submits=False, font=None, disabled=False, pad=None, key=None): return Button(button_text=button_text, button_type=BUTTON_TYPE_BROWSE_FILE, target=target, file_types=file_types, - initial_folder=initial_folder, tooltip=tooltip, size=size, auto_size_button=auto_size_button, - disabled=disabled, button_color=button_color, font=font, pad=pad, key=key) + initial_folder=initial_folder, tooltip=tooltip, size=size, auto_size_button=auto_size_button, change_submits=change_submits, disabled=disabled, button_color=button_color, font=font, pad=pad, key=key) # ------------------------- FILES BROWSE Element (Multiple file selection) lazy function ------------------------- # def FilesBrowse(button_text='Browse', target=(ThisRow, -1), file_types=(("ALL Files", "*.*"),), disabled=False, - initial_folder=None, tooltip=None, size=(None, None), auto_size_button=None, button_color=None, + initial_folder=None, tooltip=None, size=(None, None), auto_size_button=None, button_color=None, change_submits=False, font=None, pad=None, key=None): return Button(button_text=button_text, button_type=BUTTON_TYPE_BROWSE_FILES, target=target, file_types=file_types, - initial_folder=initial_folder, tooltip=tooltip, size=size, auto_size_button=auto_size_button, + initial_folder=initial_folder,change_submits=change_submits, tooltip=tooltip, size=size, auto_size_button=auto_size_button, disabled=disabled, button_color=button_color, font=font, pad=pad, key=key) # ------------------------- FILE BROWSE Element lazy function ------------------------- # def FileSaveAs(button_text='Save As...', target=(ThisRow, -1), file_types=(("ALL Files", "*.*"),), initial_folder=None, - disabled=False, tooltip=None, size=(None, None), auto_size_button=None, button_color=None, font=None, + disabled=False, tooltip=None, size=(None, None), auto_size_button=None, button_color=None, change_submits=False, font=None, pad=None, key=None): return Button(button_text=button_text, button_type=BUTTON_TYPE_SAVEAS_FILE, target=target, file_types=file_types, initial_folder=initial_folder, tooltip=tooltip, size=size, disabled=disabled, - auto_size_button=auto_size_button, button_color=button_color, font=font, pad=pad, key=key) + auto_size_button=auto_size_button, button_color=button_color, change_submits=change_submits, font=font, pad=pad, key=key) # ------------------------- SAVE AS Element lazy function ------------------------- # def SaveAs(button_text='Save As...', target=(ThisRow, -1), file_types=(("ALL Files", "*.*"),), initial_folder=None, - disabled=False, tooltip=None, size=(None, None), auto_size_button=None, button_color=None, font=None, + disabled=False, tooltip=None, size=(None, None), auto_size_button=None, button_color=None, change_submits=False, font=None, pad=None, key=None): return Button(button_text=button_text, button_type=BUTTON_TYPE_SAVEAS_FILE, target=target, file_types=file_types, initial_folder=initial_folder, tooltip=tooltip, size=size, disabled=disabled, - auto_size_button=auto_size_button, button_color=button_color, font=font, pad=pad, key=key) + auto_size_button=auto_size_button, button_color=button_color, change_submits=change_submits, font=font, pad=pad, key=key) # ------------------------- SAVE BUTTON Element lazy function ------------------------- # @@ -4697,7 +4693,7 @@ def StartupTK(my_flex_form): _my_windows.hidden_master_root = tk.Tk() _my_windows.hidden_master_root.attributes('-alpha', 0) # hide window while building it. makes for smoother 'paint' _my_windows.hidden_master_root.wm_overrideredirect(True) - + _my_windows.hidden_master_root.withdraw() # root = tk.Tk() # users windows are no longer using tk.Tk. They are all Toplevel windows root = tk.Toplevel() else: @@ -6663,8 +6659,9 @@ def main(): [Text('Destination Folder', size=(15, 1), justification='right'), InputText('Dest'), FolderBrowse()], [Ok(), Cancel()]] - button, values = Window('Demo window..').Layout(layout).Read() - + window = Window('Demo window..').Layout(layout) + event, values = window.Read() + window.Close() if __name__ == '__main__': main()