Merge pull request #3026 from PySimpleGUI/Dev-latest
Added Element.set_vscroll_position, NEW HorizontalSeparator element, …
This commit is contained in:
commit
577aac6938
|
@ -1,6 +1,6 @@
|
||||||
#!/usr/bin/python3
|
#!/usr/bin/python3
|
||||||
|
|
||||||
version = __version__ = "4.20.0.4 Unreleased\n Ability to add your own theme easier using theme_add_new, VSeparator added (spelling error), removed Radio update clearing all if one is cleared (forgot about reset_group)"
|
version = __version__ = "4.20.0.5 Unreleased\n Ability to add your own theme easier using theme_add_new, VSeparator added (spelling error), removed Radio update clearing all if one is cleared (forgot about reset_group), new Element.set_vscroll_position method, added initial_folder to popup_get_folder and default_path to no_window version of popup_get_file, HorizontalSeparator (FINALLY)"
|
||||||
|
|
||||||
port = 'PySimpleGUI'
|
port = 'PySimpleGUI'
|
||||||
|
|
||||||
|
@ -1022,6 +1022,18 @@ class Element():
|
||||||
print('Warning bad cursor specified ', cursor)
|
print('Warning bad cursor specified ', cursor)
|
||||||
print(e)
|
print(e)
|
||||||
|
|
||||||
|
def set_vscroll_position(self, percent_from_top):
|
||||||
|
"""
|
||||||
|
Attempts to set the vertical scroll postition for an element's Widget
|
||||||
|
:param percent_from_top: From 0 to 1.0, the percentage from the top to move scrollbar to
|
||||||
|
:type percent_from_top: (float)
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
self.Widget.yview_moveto(percent_from_top)
|
||||||
|
except Exception as e:
|
||||||
|
print('Warning setting the vertical scroll (yview_moveto failed)')
|
||||||
|
print(e)
|
||||||
|
|
||||||
|
|
||||||
def __call__(self, *args, **kwargs):
|
def __call__(self, *args, **kwargs):
|
||||||
"""
|
"""
|
||||||
|
@ -4579,15 +4591,38 @@ class VerticalSeparator(Element):
|
||||||
|
|
||||||
super().__init__(ELEM_TYPE_SEPARATOR, pad=pad)
|
super().__init__(ELEM_TYPE_SEPARATOR, pad=pad)
|
||||||
|
|
||||||
set_focus = Element.SetFocus
|
|
||||||
set_tooltip = Element.SetTooltip
|
|
||||||
|
|
||||||
|
|
||||||
VSeperator = VerticalSeparator
|
VSeperator = VerticalSeparator
|
||||||
VSeparator = VerticalSeparator
|
VSeparator = VerticalSeparator
|
||||||
VSep = VerticalSeparator
|
VSep = VerticalSeparator
|
||||||
|
|
||||||
|
|
||||||
|
# ---------------------------------------------------------------------- #
|
||||||
|
# Horizontal Separator #
|
||||||
|
# ---------------------------------------------------------------------- #
|
||||||
|
class HorizontalSeparator(Element):
|
||||||
|
"""
|
||||||
|
Horizontal Separator Element draws a Horizontal line at the given location.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def __init__(self, pad=None):
|
||||||
|
"""
|
||||||
|
:param pad: Amount of padding to put around element (left/right, top/bottom) or ((left, right), (top, bottom))
|
||||||
|
:type pad: (int, int) or ((int, int),(int,int)) or (int,(int,int)) or ((int, int),int)
|
||||||
|
"""
|
||||||
|
|
||||||
|
self.Orientation = 'horizontal' # for now only vertical works
|
||||||
|
|
||||||
|
super().__init__(ELEM_TYPE_SEPARATOR, pad=pad)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
HSeparator = HorizontalSeparator
|
||||||
|
HSep = HorizontalSeparator
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------- #
|
# ---------------------------------------------------------------------- #
|
||||||
# Tab #
|
# Tab #
|
||||||
# ---------------------------------------------------------------------- #
|
# ---------------------------------------------------------------------- #
|
||||||
|
@ -11216,6 +11251,8 @@ def PackFormIntoFrame(form, containing_frame, toplevel_form):
|
||||||
elif element_type == ELEM_TYPE_SEPARATOR:
|
elif element_type == ELEM_TYPE_SEPARATOR:
|
||||||
element = element # type: VerticalSeparator
|
element = element # type: VerticalSeparator
|
||||||
separator = element.Widget = ttk.Separator(tk_row_frame, orient=element.Orientation, )
|
separator = element.Widget = ttk.Separator(tk_row_frame, orient=element.Orientation, )
|
||||||
|
if element.Orientation.startswith('h'):
|
||||||
|
row_should_expand = True
|
||||||
separator.pack(side=tk.LEFT, padx=elementpad[0], pady=elementpad[1], fill='both', expand=True)
|
separator.pack(side=tk.LEFT, padx=elementpad[0], pady=elementpad[1], fill='both', expand=True)
|
||||||
# ------------------------- StatusBar placement element ------------------------- #
|
# ------------------------- StatusBar placement element ------------------------- #
|
||||||
elif element_type == ELEM_TYPE_STATUSBAR:
|
elif element_type == ELEM_TYPE_STATUSBAR:
|
||||||
|
@ -14431,7 +14468,9 @@ def PopupGetFolder(message, title=None, default_path='', no_window=False, size=(
|
||||||
root.withdraw()
|
root.withdraw()
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
folder_name = tk.filedialog.askdirectory() # show the 'get folder' dialog box
|
folder_name = tk.filedialog.askdirectory(
|
||||||
|
initialdir=initial_folder,
|
||||||
|
) # show the 'get folder' dialog box
|
||||||
|
|
||||||
root.destroy()
|
root.destroy()
|
||||||
if Window.NumOpenWindows == 1:
|
if Window.NumOpenWindows == 1:
|
||||||
|
@ -14533,14 +14572,17 @@ def PopupGetFile(message, title=None, default_path='', default_extension='', sav
|
||||||
if save_as:
|
if save_as:
|
||||||
filename = tk.filedialog.asksaveasfilename(filetypes=file_types,
|
filename = tk.filedialog.asksaveasfilename(filetypes=file_types,
|
||||||
initialdir=initial_folder,
|
initialdir=initial_folder,
|
||||||
|
initialfile=default_path,
|
||||||
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,
|
initialdir=initial_folder,
|
||||||
|
initialfile=default_path,
|
||||||
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,
|
initialdir=initial_folder,
|
||||||
|
initialfile=default_path,
|
||||||
defaultextension=default_extension) # show the 'get files' dialog box
|
defaultextension=default_extension) # show the 'get files' dialog box
|
||||||
|
|
||||||
root.destroy()
|
root.destroy()
|
||||||
|
|
Loading…
Reference in New Issue