Skip to content

Commit 680e4ca

Browse files
Fix for OptionMenu not Updating correctly to new values
1 parent b33f92c commit 680e4ca

1 file changed

Lines changed: 8 additions & 1 deletion

File tree

PySimpleGUI.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -718,7 +718,7 @@ def __init__(self, values, default_value=None, size=(None, None), disabled=False
718718
'''
719719
self.Values = values
720720
self.DefaultValue = default_value
721-
self.TKOptionMenu = None
721+
self.TKOptionMenu = None # type: tk.OptionMenu
722722
self.Disabled = disabled
723723
bg = background_color if background_color else DEFAULT_INPUT_ELEMENTS_COLOR
724724
fg = text_color if text_color is not None else DEFAULT_INPUT_TEXT_COLOR
@@ -729,6 +729,13 @@ def __init__(self, values, default_value=None, size=(None, None), disabled=False
729729
def Update(self, value=None, values=None, disabled=None, visible=None):
730730
if values is not None:
731731
self.Values = values
732+
self.TKOptionMenu['menu'].delete(0, 'end')
733+
734+
# Insert list of new options (tk._setit hooks them up to var)
735+
self.TKStringVar.set(self.Values[0])
736+
for new_value in self.Values:
737+
self.TKOptionMenu['menu'].add_command(label=new_value, command=tk._setit(self.TKStringVar, new_value))
738+
732739
if self.Values is not None:
733740
for index, v in enumerate(self.Values):
734741
if v == value:

0 commit comments

Comments
 (0)