From 680e4ca1ca09bb1d59d678e7bf79a07c0336afcd Mon Sep 17 00:00:00 2001 From: MikeTheWatchGuy Date: Sun, 24 Mar 2019 11:11:03 -0400 Subject: [PATCH] Fix for OptionMenu not Updating correctly to new values --- PySimpleGUI.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/PySimpleGUI.py b/PySimpleGUI.py index e340fa0a..61306f7c 100644 --- a/PySimpleGUI.py +++ b/PySimpleGUI.py @@ -718,7 +718,7 @@ class OptionMenu(Element): ''' self.Values = values self.DefaultValue = default_value - self.TKOptionMenu = None + self.TKOptionMenu = None # type: tk.OptionMenu self.Disabled = disabled bg = background_color if background_color else DEFAULT_INPUT_ELEMENTS_COLOR fg = text_color if text_color is not None else DEFAULT_INPUT_TEXT_COLOR @@ -729,6 +729,13 @@ class OptionMenu(Element): def Update(self, value=None, values=None, disabled=None, visible=None): if values is not None: self.Values = values + self.TKOptionMenu['menu'].delete(0, 'end') + + # Insert list of new options (tk._setit hooks them up to var) + self.TKStringVar.set(self.Values[0]) + for new_value in self.Values: + self.TKOptionMenu['menu'].add_command(label=new_value, command=tk._setit(self.TKStringVar, new_value)) + if self.Values is not None: for index, v in enumerate(self.Values): if v == value: