New parm to Multililne... rstrip defaults to True. If True, the value returned from window.read and Multiline.get will have the whitespace stripped from the right side.

This commit is contained in:
PySimpleGUI 2021-08-11 12:12:17 -04:00
parent 69f12cc568
commit 0cfbf39ebc
1 changed files with 19 additions and 6 deletions

View File

@ -1,6 +1,13 @@
#!/usr/bin/python3 #!/usr/bin/python3
version = __version__ = "4.46.0 Released 10-Aug-2021" version = __version__ = "4.46.0.1 Unreleased"
"""
Changelog since 4.46.0 release to PyPI on 10 Aug 2021
4.46.0.1
Added rstrip parm to Multiline element
"""
__version__ = version.split()[0] # For PEP 396 and PEP 345 __version__ = version.split()[0] # For PEP 396 and PEP 345
@ -2672,10 +2679,7 @@ class Multiline(Element):
def __init__(self, default_text='', enter_submits=False, disabled=False, autoscroll=False, border_width=None, def __init__(self, default_text='', enter_submits=False, disabled=False, autoscroll=False, border_width=None,
size=(None, None), s=(None, None), auto_size_text=None, background_color=None, text_color=None, change_submits=False, size=(None, None), s=(None, None), auto_size_text=None, background_color=None, text_color=None, change_submits=False,
enable_events=False, do_not_clear=True, key=None, k=None, write_only=False, auto_refresh=False, reroute_stdout=False, reroute_stderr=False, enable_events=False, do_not_clear=True, key=None, k=None, write_only=False, auto_refresh=False, reroute_stdout=False, reroute_stderr=False, reroute_cprint=False, echo_stdout_stderr=False, focus=False, font=None, pad=None, tooltip=None, justification=None, no_scrollbar=False, expand_x=False, expand_y=False, rstrip=True, right_click_menu=None, visible=True, metadata=None):
reroute_cprint=False, echo_stdout_stderr=False, focus=False, font=None, pad=None, tooltip=None, justification=None, no_scrollbar=False,
expand_x=False, expand_y=False,
right_click_menu=None, visible=True, metadata=None):
""" """
:param default_text: Initial text to show :param default_text: Initial text to show
:type default_text: (str) :type default_text: (str)
@ -2735,6 +2739,8 @@ class Multiline(Element):
:type expand_x: (bool) :type expand_x: (bool)
:param expand_y: If True the element will automatically expand in the Y direction to fill available space :param expand_y: If True the element will automatically expand in the Y direction to fill available space
:type expand_y: (bool) :type expand_y: (bool)
:param rstrip: If True the value returned in will have whitespace stripped from the right side
:type rstrip: (bool)
:param right_click_menu: 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: A list of lists of Menu items to show when this element is right clicked. See user docs for exact format.
:type right_click_menu: List[List[ List[str] | str ]] :type right_click_menu: List[List[ List[str] | str ]]
:param visible: set visibility state of the element :param visible: set visibility state of the element
@ -2768,6 +2774,7 @@ class Multiline(Element):
self.justification_tag = self.just_center_tag = self.just_left_tag = self.just_right_tag = None self.justification_tag = self.just_center_tag = self.just_left_tag = self.just_right_tag = None
self.expand_x = expand_x self.expand_x = expand_x
self.expand_y = expand_y self.expand_y = expand_y
self.rstrip = rstrip
if reroute_stdout: if reroute_stdout:
self.reroute_stdout_to_here() self.reroute_stdout_to_here()
if reroute_stderr: if reroute_stderr:
@ -2894,7 +2901,11 @@ class Multiline(Element):
:return: current contents of the Multiline Element (used as an input type of Multiline :return: current contents of the Multiline Element (used as an input type of Multiline
:rtype: (str) :rtype: (str)
""" """
return self.TKText.get(1.0, tk.END) value = str(self.TKText.get(1.0, tk.END))
if self.rstrip:
return value.rstrip()
return value
def print(self, *args, end=None, sep=None, text_color=None, background_color=None, justification=None, font=None, colors=None, t=None, b=None, c=None, def print(self, *args, end=None, sep=None, text_color=None, background_color=None, justification=None, font=None, colors=None, t=None, b=None, c=None,
autoscroll=True): autoscroll=True):
@ -12254,6 +12265,8 @@ def _BuildResultsForSubform(form, initialize_only, top_level_form):
continue continue
try: try:
value = element.TKText.get(1.0, tk.END) value = element.TKText.get(1.0, tk.END)
if element.rstrip:
value = value.rstrip()
if not top_level_form.NonBlocking and not element.do_not_clear and not top_level_form.ReturnKeyboardEvents: if not top_level_form.NonBlocking and not element.do_not_clear and not top_level_form.ReturnKeyboardEvents:
element.TKText.delete('1.0', tk.END) element.TKText.delete('1.0', tk.END)
except: except: