Made expanding Tree element a single operation like other elements.
This commit is contained in:
parent
bf8d124b9b
commit
00fa20e13b
|
@ -1,6 +1,6 @@
|
||||||
#!/usr/bin/python3
|
#!/usr/bin/python3
|
||||||
|
|
||||||
version = __version__ = "4.43.0.8 Unreleased\nChanged get_versions string to be more clear, removed canvas from return values, cwd is automatically set to the folder of the application being launched when execute_py_file is called with cwd=None, popup_get_file changed to set parent=None if running on Mac, better Button error handling when bad Unicode chars are used or bad colors, open GitHub issue GUI - added collapse button to top section, see-through mode in test harness changed to be a toggle, font parm for multiline update print cprint for char by char font control, clipboard_set & clipboard_get, Listbox visibility fix"
|
version = __version__ = "4.43.0.9 Unreleased\nChanged get_versions string to be more clear, removed canvas from return values, cwd is automatically set to the folder of the application being launched when execute_py_file is called with cwd=None, popup_get_file changed to set parent=None if running on Mac, better Button error handling when bad Unicode chars are used or bad colors, open GitHub issue GUI - added collapse button to top section, see-through mode in test harness changed to be a toggle, font parm for multiline update print cprint for char by char font control, clipboard_set & clipboard_get, Listbox visibility fix, Tree element expansion fixed, added new element_frame convention for elements that are in frames like the Listbox and Tree (need to check the other elements and add those that have frames)"
|
||||||
|
|
||||||
__version__ = version.split()[0] # For PEP 396 and PEP 345
|
__version__ = version.split()[0] # For PEP 396 and PEP 345
|
||||||
|
|
||||||
|
@ -1294,7 +1294,9 @@ class Element():
|
||||||
self.Widget.pack(expand=True, fill=fill)
|
self.Widget.pack(expand=True, fill=fill)
|
||||||
self.ParentRowFrame.pack(expand=expand_row, fill=fill)
|
self.ParentRowFrame.pack(expand=expand_row, fill=fill)
|
||||||
if self.Type == ELEM_TYPE_INPUT_LISTBOX:
|
if self.Type == ELEM_TYPE_INPUT_LISTBOX:
|
||||||
self.listbox_frame.pack(expand=True, fill=fill)
|
self.element_frame.pack(expand=True, fill=fill)
|
||||||
|
elif self.Type == ELEM_TYPE_TREE:
|
||||||
|
self.element_frame.pack(expand=True, fill=fill)
|
||||||
|
|
||||||
|
|
||||||
def set_cursor(self,cursor=None, cursor_color=None):
|
def set_cursor(self,cursor=None, cursor_color=None):
|
||||||
|
@ -1965,7 +1967,7 @@ class Listbox(Element):
|
||||||
self.RightClickMenu = right_click_menu
|
self.RightClickMenu = right_click_menu
|
||||||
self.vsb = None # type: tk.Scrollbar
|
self.vsb = None # type: tk.Scrollbar
|
||||||
self.TKListbox = self.Widget = None # type: tk.Listbox
|
self.TKListbox = self.Widget = None # type: tk.Listbox
|
||||||
self.listbox_frame = None # type: tk.Frame
|
self.element_frame = None # type: tk.Frame
|
||||||
self.NoScrollbar = no_scrollbar
|
self.NoScrollbar = no_scrollbar
|
||||||
key = key if key is not None else k
|
key = key if key is not None else k
|
||||||
sz = size if size != (None, None) else s
|
sz = size if size != (None, None) else s
|
||||||
|
@ -2017,11 +2019,11 @@ class Listbox(Element):
|
||||||
except:
|
except:
|
||||||
warnings.warn('* Listbox Update selection_set failed with index {}*'.format(set_to_index))
|
warnings.warn('* Listbox Update selection_set failed with index {}*'.format(set_to_index))
|
||||||
if visible is False:
|
if visible is False:
|
||||||
self.listbox_frame.pack_forget()
|
self.element_frame.pack_forget()
|
||||||
if not self.NoScrollbar:
|
if not self.NoScrollbar:
|
||||||
self.vsb.pack_forget()
|
self.vsb.pack_forget()
|
||||||
elif visible is True:
|
elif visible is True:
|
||||||
self.listbox_frame.pack(padx=self.pad_used[0], pady=self.pad_used[1])
|
self.element_frame.pack(padx=self.pad_used[0], pady=self.pad_used[1])
|
||||||
if not self.NoScrollbar:
|
if not self.NoScrollbar:
|
||||||
self.vsb.pack()
|
self.vsb.pack()
|
||||||
if scroll_to_index is not None and len(self.Values):
|
if scroll_to_index is not None and len(self.Values):
|
||||||
|
@ -7408,7 +7410,8 @@ class Tree(Element):
|
||||||
self.ShowExpanded = show_expanded
|
self.ShowExpanded = show_expanded
|
||||||
self.NumRows = num_rows
|
self.NumRows = num_rows
|
||||||
self.Col0Width = col0_width
|
self.Col0Width = col0_width
|
||||||
self.TKTreeview = None
|
self.TKTreeview = None # type: ttk.Treeview
|
||||||
|
self.element_frame = None # type: tk.Frame
|
||||||
self.SelectedRows = []
|
self.SelectedRows = []
|
||||||
self.ChangeSubmits = change_submits or enable_events
|
self.ChangeSubmits = change_submits or enable_events
|
||||||
self.RightClickMenu = right_click_menu
|
self.RightClickMenu = right_click_menu
|
||||||
|
@ -13118,9 +13121,9 @@ def PackFormIntoFrame(form, containing_frame, toplevel_form):
|
||||||
width = element_size[0]
|
width = element_size[0]
|
||||||
else:
|
else:
|
||||||
width = max_line_len
|
width = max_line_len
|
||||||
listbox_frame = tk.Frame(tk_row_frame)
|
element_frame = tk.Frame(tk_row_frame)
|
||||||
element.TKStringVar = tk.StringVar()
|
element.TKStringVar = tk.StringVar()
|
||||||
element.TKListbox = element.Widget = tk.Listbox(listbox_frame, height=element_size[1], width=width,
|
element.TKListbox = element.Widget = tk.Listbox(element_frame, height=element_size[1], width=width,
|
||||||
selectmode=element.SelectMode, font=font, exportselection=False)
|
selectmode=element.SelectMode, font=font, exportselection=False)
|
||||||
element.Widget.config(highlightthickness=0)
|
element.Widget.config(highlightthickness=0)
|
||||||
for index, item in enumerate(element.Values):
|
for index, item in enumerate(element.Values):
|
||||||
|
@ -13138,17 +13141,17 @@ def PackFormIntoFrame(form, containing_frame, toplevel_form):
|
||||||
if element.ChangeSubmits:
|
if element.ChangeSubmits:
|
||||||
element.TKListbox.bind('<<ListboxSelect>>', element._ListboxSelectHandler)
|
element.TKListbox.bind('<<ListboxSelect>>', element._ListboxSelectHandler)
|
||||||
if not element.NoScrollbar:
|
if not element.NoScrollbar:
|
||||||
element.vsb = tk.Scrollbar(listbox_frame, orient="vertical", command=element.TKListbox.yview)
|
element.vsb = tk.Scrollbar(element_frame, orient="vertical", command=element.TKListbox.yview)
|
||||||
element.TKListbox.configure(yscrollcommand=element.vsb.set)
|
element.TKListbox.configure(yscrollcommand=element.vsb.set)
|
||||||
element.vsb.pack(side=tk.RIGHT, fill='y')
|
element.vsb.pack(side=tk.RIGHT, fill='y')
|
||||||
|
|
||||||
# Chr0nic
|
# Chr0nic
|
||||||
element.TKListbox.bind("<Enter>", lambda event, em=element: testMouseHook(em))
|
element.TKListbox.bind("<Enter>", lambda event, em=element: testMouseHook(em))
|
||||||
element.TKListbox.bind("<Leave>", lambda event, em=element: testMouseUnhook(em))
|
element.TKListbox.bind("<Leave>", lambda event, em=element: testMouseUnhook(em))
|
||||||
listbox_frame.pack(side=tk.LEFT, padx=elementpad[0], pady=elementpad[1])
|
element_frame.pack(side=tk.LEFT, padx=elementpad[0], pady=elementpad[1])
|
||||||
element.TKListbox.pack(side=tk.LEFT)
|
element.TKListbox.pack(side=tk.LEFT)
|
||||||
if element.visible is False:
|
if element.visible is False:
|
||||||
listbox_frame.pack_forget()
|
element_frame.pack_forget()
|
||||||
element.vsb.pack_forget()
|
element.vsb.pack_forget()
|
||||||
if element.BindReturnKey:
|
if element.BindReturnKey:
|
||||||
element.TKListbox.bind('<Return>', element._ListboxSelectHandler)
|
element.TKListbox.bind('<Return>', element._ListboxSelectHandler)
|
||||||
|
@ -13158,7 +13161,7 @@ def PackFormIntoFrame(form, containing_frame, toplevel_form):
|
||||||
if element.Tooltip is not None:
|
if element.Tooltip is not None:
|
||||||
element.TooltipObject = ToolTip(element.TKListbox, text=element.Tooltip,
|
element.TooltipObject = ToolTip(element.TKListbox, text=element.Tooltip,
|
||||||
timeout=DEFAULT_TOOLTIP_TIME)
|
timeout=DEFAULT_TOOLTIP_TIME)
|
||||||
element.listbox_frame = listbox_frame
|
element.element_frame = element_frame
|
||||||
_add_right_click_menu(element)
|
_add_right_click_menu(element)
|
||||||
# ------------------------- MULTILINE placement element ------------------------- #
|
# ------------------------- MULTILINE placement element ------------------------- #
|
||||||
elif element_type == ELEM_TYPE_INPUT_MULTILINE:
|
elif element_type == ELEM_TYPE_INPUT_MULTILINE:
|
||||||
|
@ -13817,7 +13820,7 @@ def PackFormIntoFrame(form, containing_frame, toplevel_form):
|
||||||
# ------------------------- Tree placement element ------------------------- #
|
# ------------------------- Tree placement element ------------------------- #
|
||||||
elif element_type == ELEM_TYPE_TREE:
|
elif element_type == ELEM_TYPE_TREE:
|
||||||
element = element # type: Tree
|
element = element # type: Tree
|
||||||
frame = tk.Frame(tk_row_frame)
|
element.element_frame = element_frame = tk.Frame(tk_row_frame)
|
||||||
|
|
||||||
height = element.NumRows
|
height = element.NumRows
|
||||||
if element.Justification.startswith('l'): # justification
|
if element.Justification.startswith('l'): # justification
|
||||||
|
@ -13836,7 +13839,7 @@ def PackFormIntoFrame(form, containing_frame, toplevel_form):
|
||||||
displaycolumns.append(element.ColumnHeadings[i])
|
displaycolumns.append(element.ColumnHeadings[i])
|
||||||
column_headings = element.ColumnHeadings
|
column_headings = element.ColumnHeadings
|
||||||
# ------------- GET THE TREEVIEW WIDGET -------------
|
# ------------- GET THE TREEVIEW WIDGET -------------
|
||||||
element.TKTreeview = element.Widget = ttk.Treeview(frame, columns=column_headings,
|
element.TKTreeview = element.Widget = ttk.Treeview(element_frame, columns=column_headings,
|
||||||
displaycolumns=displaycolumns, show='tree headings',
|
displaycolumns=displaycolumns, show='tree headings',
|
||||||
height=height,
|
height=height,
|
||||||
selectmode=element.SelectMode)
|
selectmode=element.SelectMode)
|
||||||
|
@ -13911,14 +13914,14 @@ def PackFormIntoFrame(form, containing_frame, toplevel_form):
|
||||||
if element.RowHeight:
|
if element.RowHeight:
|
||||||
tree_style.configure(style_name, rowheight=element.RowHeight)
|
tree_style.configure(style_name, rowheight=element.RowHeight)
|
||||||
treeview.configure(style=style_name) # IMPORTANT! Be sure and set the style name for this widget
|
treeview.configure(style=style_name) # IMPORTANT! Be sure and set the style name for this widget
|
||||||
scrollbar = tk.Scrollbar(frame)
|
element.scrollbar = scrollbar = tk.Scrollbar(element_frame)
|
||||||
scrollbar.pack(side=tk.RIGHT, fill='y')
|
scrollbar.pack(side=tk.RIGHT, fill='y')
|
||||||
scrollbar.config(command=treeview.yview)
|
scrollbar.config(command=treeview.yview)
|
||||||
treeview.configure(yscrollcommand=scrollbar.set)
|
treeview.configure(yscrollcommand=scrollbar.set)
|
||||||
element.TKTreeview.pack(side=tk.LEFT, expand=True, padx=0, pady=0, fill='both')
|
element.TKTreeview.pack(side=tk.LEFT, expand=True, padx=0, pady=0, fill='both')
|
||||||
if element.visible is False:
|
if element.visible is False:
|
||||||
element.TKTreeview.pack_forget()
|
element.TKTreeview.pack_forget()
|
||||||
frame.pack(side=tk.LEFT, expand=True, padx=elementpad[0], pady=elementpad[1])
|
element_frame.pack(side=tk.LEFT, expand=True, padx=elementpad[0], pady=elementpad[1])
|
||||||
treeview.bind("<<TreeviewSelect>>", element._treeview_selected)
|
treeview.bind("<<TreeviewSelect>>", element._treeview_selected)
|
||||||
if element.Tooltip is not None: # tooltip
|
if element.Tooltip is not None: # tooltip
|
||||||
element.TooltipObject = ToolTip(element.TKTreeview, text=element.Tooltip,
|
element.TooltipObject = ToolTip(element.TKTreeview, text=element.Tooltip,
|
||||||
|
|
Loading…
Reference in New Issue