commit
fc1cf5a2af
|
@ -753,8 +753,18 @@ class Element():
|
||||||
|
|
||||||
|
|
||||||
def __call__(self, *args, **kwargs):
|
def __call__(self, *args, **kwargs):
|
||||||
'''Change the position of the entity.'''
|
"""
|
||||||
print('IN CALL!')
|
Makes it possible to "call" an already existing element. When you do make the "call", it actually calls
|
||||||
|
the Update method for the element.
|
||||||
|
Example: If this text element was in yoiur layout:
|
||||||
|
sg.Text('foo', key='T')
|
||||||
|
Then you can call the Update method for that element by writing:
|
||||||
|
window.FindElement('T')('new text value')
|
||||||
|
|
||||||
|
:param args:
|
||||||
|
:param kwargs:
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
return self.Update(*args, **kwargs)
|
return self.Update(*args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
@ -4813,7 +4823,7 @@ class Window:
|
||||||
auto_close_duration=DEFAULT_AUTOCLOSE_TIME, icon=None, force_toplevel=False,
|
auto_close_duration=DEFAULT_AUTOCLOSE_TIME, icon=None, force_toplevel=False,
|
||||||
alpha_channel=1, return_keyboard_events=False, use_default_focus=True, text_justification=None,
|
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, disable_close=False,
|
no_titlebar=False, grab_anywhere=False, keep_on_top=False, resizable=False, disable_close=False,
|
||||||
disable_minimize=False, right_click_menu=None, transparent_color=None, debugger_enabled=True):
|
disable_minimize=False, right_click_menu=None, transparent_color=None, debugger_enabled=True, finalize=False):
|
||||||
"""
|
"""
|
||||||
:param title: (str) The title that will be displayed in the Titlebar and on the Taskbar
|
:param title: (str) The title that will be displayed in the Titlebar and on the Taskbar
|
||||||
:param layout: List[List[Elements]] The layout for the window. Can also be specified in the Layout method
|
:param layout: List[List[Elements]] The layout for the window. Can also be specified in the Layout method
|
||||||
|
@ -4846,6 +4856,7 @@ class Window:
|
||||||
:param disable_minimize: (bool) if True the user won't be able to minimize window. Good for taking over entire screen and staying that way.
|
:param disable_minimize: (bool) if True the user won't be able to minimize window. Good for taking over entire screen and staying that way.
|
||||||
:param right_click_menu: List[List[Union[List[str],str]]] A list of lists of Menu items to show when this element is right clicked. See user docs for exact format.
|
:param right_click_menu: List[List[Union[List[str],str]]] A list of lists of Menu items to show when this element is right clicked. See user docs for exact format.
|
||||||
:param transparent_color: (str) Any portion of the window that has this color will be completely transparent. You can even click through these spots to the window under this window.
|
:param transparent_color: (str) Any portion of the window that has this color will be completely transparent. You can even click through these spots to the window under this window.
|
||||||
|
:param finalize: (bool) If True then the Finalize method will be called. Use this rather than chaining .Finalize for cleaner code
|
||||||
:param debugger_enabled: (bool) If True then the internal debugger will be enabled
|
:param debugger_enabled: (bool) If True then the internal debugger will be enabled
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
@ -4916,7 +4927,8 @@ class Window:
|
||||||
|
|
||||||
if layout is not None:
|
if layout is not None:
|
||||||
self.Layout(layout)
|
self.Layout(layout)
|
||||||
|
if finalize:
|
||||||
|
self.Finalize()
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def GetAContainerNumber(cls):
|
def GetAContainerNumber(cls):
|
||||||
|
@ -5930,6 +5942,13 @@ class Window:
|
||||||
# for row in self.Rows:
|
# for row in self.Rows:
|
||||||
# for element in row:
|
# for element in row:
|
||||||
# element.__del__()
|
# element.__del__()
|
||||||
|
# -------------------------------- PEP8-ify the Window Class USER Interfaces -------------------------------- #
|
||||||
|
read = Read
|
||||||
|
layout = Layout
|
||||||
|
finalize = Finalize
|
||||||
|
find_element = FindElement
|
||||||
|
element =FindElement
|
||||||
|
close = Close
|
||||||
|
|
||||||
|
|
||||||
FlexForm = Window
|
FlexForm = Window
|
||||||
|
@ -8452,12 +8471,16 @@ def ConvertFlexToTK(MyFlexForm):
|
||||||
|
|
||||||
|
|
||||||
# ----====----====----====----====----==== STARTUP TK ====----====----====----====----====----#
|
# ----====----====----====----====----==== STARTUP TK ====----====----====----====----====----#
|
||||||
def StartupTK(my_flex_form: Window):
|
def StartupTK(my_flex_form):
|
||||||
"""
|
"""
|
||||||
|
NOT user callable
|
||||||
|
Creates the window (for real) lays out all the elements, etc. It's a HUGE set of things it does. It's the basic
|
||||||
|
"porting layer" that will change depending on the GUI framework PySimpleGUI is running on top of.
|
||||||
|
|
||||||
:param my_flex_form: Window:
|
:param my_flex_form: (Window):
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
my_flex_form = my_flex_form # type: Window
|
||||||
# global _my_windows
|
# global _my_windows
|
||||||
# ow = _my_windows.NumOpenWindows
|
# ow = _my_windows.NumOpenWindows
|
||||||
ow = Window.NumOpenWindows
|
ow = Window.NumOpenWindows
|
||||||
|
@ -10181,14 +10204,18 @@ def PopupGetFile(message, title=None, default_path='', default_extension='', sav
|
||||||
root.withdraw()
|
root.withdraw()
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
|
# TODO - Macs will not like this code because of the filetypes being used. Need another Darwin check.
|
||||||
if save_as:
|
if save_as:
|
||||||
filename = tk.filedialog.asksaveasfilename(filetypes=file_types,
|
filename = tk.filedialog.asksaveasfilename(filetypes=file_types,
|
||||||
|
initialdir = initial_folder,
|
||||||
defaultextension=default_extension) # show the 'get file' dialog box
|
defaultextension=default_extension) # show the 'get file' dialog box
|
||||||
elif multiple_files:
|
elif multiple_files:
|
||||||
filename = tk.filedialog.askopenfilenames(filetypes=file_types,
|
filename = tk.filedialog.askopenfilenames(filetypes=file_types,
|
||||||
|
initialdir=initial_folder,
|
||||||
defaultextension=default_extension) # show the 'get file' dialog box
|
defaultextension=default_extension) # show the 'get file' dialog box
|
||||||
else:
|
else:
|
||||||
filename = tk.filedialog.askopenfilename(filetypes=file_types,
|
filename = tk.filedialog.askopenfilename(filetypes=file_types,
|
||||||
|
initialdir=initial_folder,
|
||||||
defaultextension=default_extension) # show the 'get files' dialog box
|
defaultextension=default_extension) # show the 'get files' dialog box
|
||||||
|
|
||||||
root.destroy()
|
root.destroy()
|
||||||
|
@ -11034,6 +11061,8 @@ def main():
|
||||||
show_debugger_window()
|
show_debugger_window()
|
||||||
window.Close()
|
window.Close()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# -------------------------------- ENTRY POINT IF RUN STANDALONE -------------------------------- #
|
# -------------------------------- ENTRY POINT IF RUN STANDALONE -------------------------------- #
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
main()
|
main()
|
||||||
|
|
5375
PySimpleGUI27.py
5375
PySimpleGUI27.py
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue