commit
b45948051d
|
@ -339,7 +339,7 @@ class ToolTip:
|
||||||
# ------------------------------------------------------------------------- #
|
# ------------------------------------------------------------------------- #
|
||||||
class Element():
|
class Element():
|
||||||
def __init__(self, type, size=(None, None), auto_size_text=None, font=None, background_color=None, text_color=None,
|
def __init__(self, type, size=(None, None), auto_size_text=None, font=None, background_color=None, text_color=None,
|
||||||
key=None, pad=None, tooltip=None):
|
key=None, pad=None, tooltip=None, visible=True):
|
||||||
self.Size = size
|
self.Size = size
|
||||||
self.Type = type
|
self.Type = type
|
||||||
self.AutoSizeText = auto_size_text
|
self.AutoSizeText = auto_size_text
|
||||||
|
@ -361,6 +361,7 @@ class Element():
|
||||||
self.Key = key # dictionary key for return values
|
self.Key = key # dictionary key for return values
|
||||||
self.Tooltip = tooltip
|
self.Tooltip = tooltip
|
||||||
self.TooltipObject = None
|
self.TooltipObject = None
|
||||||
|
self.Visible = visible
|
||||||
|
|
||||||
def FindReturnKeyBoundButton(self, form):
|
def FindReturnKeyBoundButton(self, form):
|
||||||
for row in form.Rows:
|
for row in form.Rows:
|
||||||
|
@ -547,7 +548,7 @@ Input = InputText
|
||||||
# ---------------------------------------------------------------------- #
|
# ---------------------------------------------------------------------- #
|
||||||
# Combo #
|
# Combo #
|
||||||
# ---------------------------------------------------------------------- #
|
# ---------------------------------------------------------------------- #
|
||||||
class InputCombo(Element):
|
class Combo(Element):
|
||||||
def __init__(self, values, default_value=None, size=(None, None), auto_size_text=None, background_color=None,
|
def __init__(self, values, default_value=None, size=(None, None), auto_size_text=None, background_color=None,
|
||||||
text_color=None, change_submits=False, enable_events=False, disabled=False, key=None, pad=None, tooltip=None,
|
text_color=None, change_submits=False, enable_events=False, disabled=False, key=None, pad=None, tooltip=None,
|
||||||
readonly=False, font=None):
|
readonly=False, font=None):
|
||||||
|
@ -614,7 +615,7 @@ class InputCombo(Element):
|
||||||
|
|
||||||
|
|
||||||
# ------------------------- INPUT COMBO Element lazy functions ------------------------- #
|
# ------------------------- INPUT COMBO Element lazy functions ------------------------- #
|
||||||
Combo = InputCombo
|
InputCombo = Combo
|
||||||
DropDown = InputCombo
|
DropDown = InputCombo
|
||||||
Drop = InputCombo
|
Drop = InputCombo
|
||||||
|
|
||||||
|
@ -1874,7 +1875,7 @@ class Graph(Element):
|
||||||
# ---------------------------------------------------------------------- #
|
# ---------------------------------------------------------------------- #
|
||||||
class Frame(Element):
|
class Frame(Element):
|
||||||
def __init__(self, title, layout, title_color=None, background_color=None, title_location=None,
|
def __init__(self, title, layout, title_color=None, background_color=None, title_location=None,
|
||||||
relief=DEFAULT_FRAME_RELIEF, size=(None, None), font=None, pad=None, border_width=None, key=None,
|
relief=DEFAULT_FRAME_RELIEF, size=(None, None), font=None, pad=None, border_width=None, key=None, visible=True,
|
||||||
tooltip=None):
|
tooltip=None):
|
||||||
'''
|
'''
|
||||||
Frame Element
|
Frame Element
|
||||||
|
@ -1909,7 +1910,7 @@ class Frame(Element):
|
||||||
self.Layout(layout)
|
self.Layout(layout)
|
||||||
|
|
||||||
super().__init__(ELEM_TYPE_FRAME, background_color=background_color, text_color=title_color, size=size,
|
super().__init__(ELEM_TYPE_FRAME, background_color=background_color, text_color=title_color, size=size,
|
||||||
font=font, pad=pad, key=key, tooltip=tooltip)
|
font=font, pad=pad, key=key, tooltip=tooltip, visible=visible)
|
||||||
return
|
return
|
||||||
|
|
||||||
def AddRow(self, *args):
|
def AddRow(self, *args):
|
||||||
|
@ -1937,6 +1938,14 @@ class Frame(Element):
|
||||||
element = row[col_num]
|
element = row[col_num]
|
||||||
return element
|
return element
|
||||||
|
|
||||||
|
|
||||||
|
def Update(self, visible=None):
|
||||||
|
if visible is False:
|
||||||
|
self.TKFrame.pack_forget()
|
||||||
|
elif visible is True:
|
||||||
|
self.TKFrame.pack()
|
||||||
|
|
||||||
|
|
||||||
def __del__(self):
|
def __del__(self):
|
||||||
for row in self.Rows:
|
for row in self.Rows:
|
||||||
for element in row:
|
for element in row:
|
||||||
|
@ -2166,7 +2175,7 @@ class Slider(Element):
|
||||||
self.TickInterval = tick_interval
|
self.TickInterval = tick_interval
|
||||||
temp_size = size
|
temp_size = size
|
||||||
if temp_size == (None, None):
|
if temp_size == (None, None):
|
||||||
temp_size = (20, 20) if orientation.startswith('h') else (8, 20)
|
temp_size = (20, 20) if self.Orientation.startswith('h') else (8, 20)
|
||||||
|
|
||||||
super().__init__(ELEM_TYPE_INPUT_SLIDER, size=temp_size, font=font, background_color=background_color,
|
super().__init__(ELEM_TYPE_INPUT_SLIDER, size=temp_size, font=font, background_color=background_color,
|
||||||
text_color=text_color, key=key, pad=pad, tooltip=tooltip)
|
text_color=text_color, key=key, pad=pad, tooltip=tooltip)
|
||||||
|
@ -2186,6 +2195,7 @@ class Slider(Element):
|
||||||
elif disabled == False:
|
elif disabled == False:
|
||||||
self.TKScale['state'] = 'normal'
|
self.TKScale['state'] = 'normal'
|
||||||
|
|
||||||
|
|
||||||
def SliderChangedHandler(self, event):
|
def SliderChangedHandler(self, event):
|
||||||
# first, get the results table built
|
# first, get the results table built
|
||||||
# modify the Results table in the parent FlexForm object
|
# modify the Results table in the parent FlexForm object
|
||||||
|
@ -2280,7 +2290,7 @@ class TkScrollableFrame(tk.Frame):
|
||||||
# Column #
|
# Column #
|
||||||
# ---------------------------------------------------------------------- #
|
# ---------------------------------------------------------------------- #
|
||||||
class Column(Element):
|
class Column(Element):
|
||||||
def __init__(self, layout, background_color=None, size=(None, None), pad=None, scrollable=False, vertical_scroll_only=False, key=None):
|
def __init__(self, layout, background_color=None, size=(None, None), pad=None, scrollable=False, vertical_scroll_only=False, visible=True, key=None):
|
||||||
'''
|
'''
|
||||||
Container for elements that are stacked into rows
|
Container for elements that are stacked into rows
|
||||||
:param layout:
|
:param layout:
|
||||||
|
@ -2299,13 +2309,14 @@ class Column(Element):
|
||||||
self.ParentWindow = None
|
self.ParentWindow = None
|
||||||
self.Rows = []
|
self.Rows = []
|
||||||
self.TKFrame = None
|
self.TKFrame = None
|
||||||
|
self.TKColFrame = None
|
||||||
self.Scrollable = scrollable
|
self.Scrollable = scrollable
|
||||||
self.VerticalScrollOnly = vertical_scroll_only
|
self.VerticalScrollOnly = vertical_scroll_only
|
||||||
bg = background_color if background_color is not None else DEFAULT_BACKGROUND_COLOR
|
bg = background_color if background_color is not None else DEFAULT_BACKGROUND_COLOR
|
||||||
|
|
||||||
self.Layout(layout)
|
self.Layout(layout)
|
||||||
|
|
||||||
super().__init__(ELEM_TYPE_COLUMN, background_color=background_color, size=size, pad=pad, key=key)
|
super().__init__(ELEM_TYPE_COLUMN, background_color=background_color, size=size, pad=pad, key=key, visible=visible)
|
||||||
return
|
return
|
||||||
|
|
||||||
def AddRow(self, *args):
|
def AddRow(self, *args):
|
||||||
|
@ -2333,6 +2344,13 @@ class Column(Element):
|
||||||
element = row[col_num]
|
element = row[col_num]
|
||||||
return element
|
return element
|
||||||
|
|
||||||
|
def Update(self, visible=None):
|
||||||
|
if visible is False:
|
||||||
|
self.TKColFrame.pack_forget()
|
||||||
|
elif visible is True:
|
||||||
|
self.TKColFrame.pack()
|
||||||
|
|
||||||
|
|
||||||
def __del__(self):
|
def __del__(self):
|
||||||
for row in self.Rows:
|
for row in self.Rows:
|
||||||
for element in row:
|
for element in row:
|
||||||
|
@ -2671,7 +2689,7 @@ class Table(Element):
|
||||||
self.AlternatingRowColor = alternating_row_color
|
self.AlternatingRowColor = alternating_row_color
|
||||||
self.SelectedRows = []
|
self.SelectedRows = []
|
||||||
self.ChangeSubmits = change_submits or enable_events
|
self.ChangeSubmits = change_submits or enable_events
|
||||||
self.BindReturnKey = bind_return_key
|
self.BindReturnKey = bind_return_key
|
||||||
self.StartingRowNumber = 0 # When displaying row numbers, where to start
|
self.StartingRowNumber = 0 # When displaying row numbers, where to start
|
||||||
self.RowHeaderText = 'Row'
|
self.RowHeaderText = 'Row'
|
||||||
super().__init__(ELEM_TYPE_TABLE, text_color=text_color, background_color=background_color, font=font,
|
super().__init__(ELEM_TYPE_TABLE, text_color=text_color, background_color=background_color, font=font,
|
||||||
|
@ -4172,8 +4190,9 @@ def PackFormIntoFrame(form, containing_frame, toplevel_form):
|
||||||
else:
|
else:
|
||||||
col_frame = tk.Frame(tk_row_frame)
|
col_frame = tk.Frame(tk_row_frame)
|
||||||
PackFormIntoFrame(element, col_frame, toplevel_form)
|
PackFormIntoFrame(element, col_frame, toplevel_form)
|
||||||
|
if element.Visible:
|
||||||
col_frame.pack(side=tk.LEFT, padx=element.Pad[0], pady=element.Pad[1], expand=True, fill='both')
|
col_frame.pack(side=tk.LEFT, padx=element.Pad[0], pady=element.Pad[1], expand=True, fill='both')
|
||||||
|
element.TKColFrame = col_frame
|
||||||
if element.BackgroundColor != COLOR_SYSTEM_DEFAULT and element.BackgroundColor is not None:
|
if element.BackgroundColor != COLOR_SYSTEM_DEFAULT and element.BackgroundColor is not None:
|
||||||
col_frame.configure(background=element.BackgroundColor, highlightbackground=element.BackgroundColor,
|
col_frame.configure(background=element.BackgroundColor, highlightbackground=element.BackgroundColor,
|
||||||
highlightcolor=element.BackgroundColor)
|
highlightcolor=element.BackgroundColor)
|
||||||
|
@ -4668,8 +4687,11 @@ def PackFormIntoFrame(form, containing_frame, toplevel_form):
|
||||||
# ------------------------- Frame element ------------------------- #
|
# ------------------------- Frame element ------------------------- #
|
||||||
elif element_type == ELEM_TYPE_FRAME:
|
elif element_type == ELEM_TYPE_FRAME:
|
||||||
labeled_frame = tk.LabelFrame(tk_row_frame, text=element.Title, relief=element.Relief)
|
labeled_frame = tk.LabelFrame(tk_row_frame, text=element.Title, relief=element.Relief)
|
||||||
|
element.TKFrame = labeled_frame
|
||||||
PackFormIntoFrame(element, labeled_frame, toplevel_form)
|
PackFormIntoFrame(element, labeled_frame, toplevel_form)
|
||||||
labeled_frame.pack(side=tk.LEFT, padx=element.Pad[0], pady=element.Pad[1])
|
labeled_frame.pack(side=tk.LEFT, padx=element.Pad[0], pady=element.Pad[1])
|
||||||
|
if not element.Visible:
|
||||||
|
labeled_frame.pack_forget()
|
||||||
if element.BackgroundColor != COLOR_SYSTEM_DEFAULT and element.BackgroundColor is not None:
|
if element.BackgroundColor != COLOR_SYSTEM_DEFAULT and element.BackgroundColor is not None:
|
||||||
labeled_frame.configure(background=element.BackgroundColor,
|
labeled_frame.configure(background=element.BackgroundColor,
|
||||||
highlightbackground=element.BackgroundColor,
|
highlightbackground=element.BackgroundColor,
|
||||||
|
@ -6678,7 +6700,7 @@ def main():
|
||||||
[Text('Source Folder', size=(15, 1), justification='right'), InputText('Source', focus=True),
|
[Text('Source Folder', size=(15, 1), justification='right'), InputText('Source', focus=True),
|
||||||
FolderBrowse(tooltip='Browse for a folder')],
|
FolderBrowse(tooltip='Browse for a folder')],
|
||||||
[Text('Destination Folder', size=(15, 1), justification='right'), InputText('Dest'), FolderBrowse()],
|
[Text('Destination Folder', size=(15, 1), justification='right'), InputText('Dest'), FolderBrowse()],
|
||||||
[Ok(), Cancel()]]
|
[Ok(bind_return_key=True), Cancel()]]
|
||||||
|
|
||||||
window = Window('Demo window..').Layout(layout)
|
window = Window('Demo window..').Layout(layout)
|
||||||
event, values = window.Read()
|
event, values = window.Read()
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue