Skip to content

Commit fe62360

Browse files
Merge pull request PySimpleGUI#1396 from PySimpleGUI/Dev-latest
Menus!
2 parents 5811a43 + 7e3b743 commit fe62360

File tree

1 file changed

+19
-17
lines changed

1 file changed

+19
-17
lines changed

PySimpleGUIWeb/PySimpleGUIWeb.py

Lines changed: 19 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -2473,16 +2473,20 @@ def __init__(self, menu_definition, background_color=None, size=(None, None), te
24732473
self.TKMenu = None
24742474
self.Tearoff = tearoff
24752475
self.Widget = None # type: remi.gui.MenuBar
2476+
self.MenuItemChosen = None
24762477

24772478
super().__init__(ELEM_TYPE_MENUBAR, background_color=background_color, size=size, pad=pad, key=key)
24782479
return
24792480

2480-
def MenuItemChosenCallback(self, item_chosen):
2481-
# print('IN MENU ITEM CALLBACK', item_chosen)
2482-
self.ParentForm.LastButtonClicked = item_chosen
2483-
self.ParentForm.FormRemainedOpen = True
2484-
if self.ParentForm.CurrentlyRunningMainloop:
2485-
self.ParentForm.TKroot.quit() # kick the users out of the mainloop
2481+
2482+
2483+
def ChangedCallbackMenu(self, widget, *user_data):
2484+
widget = widget # type: remi.gui.MenuItem
2485+
chosen = user_data[0]
2486+
self.MenuItemChosen = chosen
2487+
self.ParentForm.LastButtonClicked = chosen
2488+
self.ParentForm.MessageQueue.put(chosen)
2489+
24862490

24872491
def __del__(self):
24882492
super().__del__()
@@ -2569,6 +2573,7 @@ def Update(self, values=None):
25692573
if self.DisplayRowNumbers:
25702574
value = [i + self.StartingRowNumber] + value
25712575
id = self.TKTreeview.insert('', 'end', text=i, iid=i + 1, values=value, tag=i % 2)
2576+
id = self.TKTreeview.insert('', 'end', text=i, iid=i + 1, values=value, tag=i % 2)
25722577
if self.AlternatingRowColor is not None:
25732578
self.TKTreeview.tag_configure(1, background=self.AlternatingRowColor)
25742579
self.Values = values
@@ -4050,6 +4055,8 @@ def BuildResultsForSubform(form, initialize_only, top_level_form):
40504055
value = element.SelectedRows
40514056
elif element.Type == ELEM_TYPE_GRAPH:
40524057
value = element.ClickPosition
4058+
elif element.Type == ELEM_TYPE_MENUBAR:
4059+
value = element.MenuItemChosen
40534060
else:
40544061
value = None
40554062

@@ -4223,7 +4230,7 @@ def AddMenuItem(top_menu, sub_menu_info, element, is_sub_menu=False, skip=False)
42234230
else:
42244231
menu_item = remi.gui.MenuItem(item_without_key, width=100, height=30)
42254232
top_menu.append([menu_item,])
4226-
4233+
menu_item.set_on_click_listener(element.ChangedCallbackMenu, sub_menu_info)
42274234
else:
42284235
i = 0
42294236
while i < (len(sub_menu_info)):
@@ -4857,16 +4864,15 @@ def do_font_and_color(widget):
48574864
item.set_enabled(False)
48584865
else:
48594866
item = remi.gui.MenuItem(menu_entry[0], width=100, height=30)
4860-
48614867
menu.append([item,])
48624868
if len(menu_entry) > 1:
48634869
AddMenuItem(item, menu_entry[1], element)
48644870

48654871
element.Widget = menubar = remi.gui.MenuBar(width='100%', height='30px')
4866-
element.Widget.style['z-index'] = '11'
4867-
element.Widget.style['order'] = '11'
4872+
element.Widget.style['z-index'] = '1'
48684873
menubar.append(menu)
4869-
tk_row_frame.append(element.Widget)
4874+
# tk_row_frame.append(element.Widget)
4875+
containing_frame.append(element.Widget)
48704876

48714877
# ------------------------- Frame element ------------------------- #
48724878
elif element_type == ELEM_TYPE_FRAME:
@@ -6960,21 +6966,17 @@ def main():
69606966
['&Help', '&About...'], ]
69616967

69626968

6963-
menu_def = [['File', ['&Open', '&Save', 'E&xit', 'Properties']],
6969+
menu_def = [['File', ['&Open::mykey', '&Save', 'E&xit', 'Properties']],
69646970
['Edit', ['!Paste', ['Special', 'Normal', ], '!Undo'], ],
69656971
['!Disabled', ['Has Sub', ['Item1', 'Item2', ], 'No Sub'], ],
69666972
['Help', 'About...'], ]
69676973

69686974
col1 = [[Text('Column 1 line 1', background_color='red')], [Text('Column 1 line 2')]]
69696975

69706976
layout = [
6971-
[Menu(menu_def)],
6977+
[Menu(menu_def, key='_MENU_')],
69726978
# [T('123435', size=(1,8))],
69736979
[Image(data=DEFAULT_BASE64_ICON)],
6974-
[Image(data=DEFAULT_BASE64_ICON)],
6975-
[Image(data=DEFAULT_BASE64_ICON)],
6976-
[Image(data=DEFAULT_BASE64_ICON)],
6977-
[Image(data=DEFAULT_BASE64_ICON)],
69786980
[Text('PySimpleGUIWeb Welcomes You...', tooltip='text', font=('Comic sans ms', 20),size=(40,1), text_color='red', enable_events=True, key='_PySimpleGUIWeb_')],
69796981
[T('Current Time '), Text('Text', key='_TEXT_', font='Arial 18', text_color='black', size=(30,1)), Column(col1, background_color='red')],
69806982
[T('Up Time'), Text('Text', key='_TEXT_UPTIME_', font='Arial 18', text_color='black', size=(30,1))],

0 commit comments

Comments
 (0)