68 lines
2.0 KiB
Python
68 lines
2.0 KiB
Python
#!/usr/bin/env python
|
|
import PySimpleGUI as sg
|
|
"""
|
|
Demonstration of MENUS!
|
|
How do menus work? Like buttons is how.
|
|
Check out the variable menu_def for a hint on how to
|
|
define menus
|
|
"""
|
|
|
|
|
|
def second_window():
|
|
|
|
layout = [[sg.Text('The second form is small \nHere to show that opening a window using a window works')],
|
|
[sg.OK()]]
|
|
|
|
window = sg.Window('Second Form', layout)
|
|
event, values = window.read()
|
|
window.close()
|
|
|
|
|
|
def test_menus():
|
|
|
|
sg.change_look_and_feel('LightGreen')
|
|
sg.set_options(element_padding=(0, 0))
|
|
|
|
# ------ Menu Definition ------ #
|
|
menu_def = [['&File', ['&Open', '&Save', '&Properties', 'E&xit']],
|
|
['&Edit', ['&Paste', ['Special', 'Normal', ], 'Undo'], ],
|
|
['&Toolbar', ['---', 'Command &1', 'Command &2',
|
|
'---', 'Command &3', 'Command &4']],
|
|
['&Help', '&About...'], ]
|
|
|
|
# ------ GUI Defintion ------ #
|
|
layout = [
|
|
[sg.Menu(menu_def, tearoff=False, pad=(20, 1))],
|
|
[sg.Output(size=(60, 20))],
|
|
]
|
|
|
|
window = sg.Window("Windows-like program",
|
|
layout,
|
|
default_element_size=(12, 1),
|
|
auto_size_text=False,
|
|
auto_size_buttons=False,
|
|
default_button_element_size=(12, 1))
|
|
|
|
# ------ Loop & Process button menu choices ------ #
|
|
while True:
|
|
event, values = window.read()
|
|
if event in (None, 'Exit'):
|
|
return
|
|
print('Event = ', event)
|
|
# ------ Process menu choices ------ #
|
|
if event == 'About...':
|
|
window.disappear()
|
|
sg.popup('About this program', 'Version 1.0',
|
|
'PySimpleGUI rocks...', grab_anywhere=True)
|
|
window.reappear()
|
|
elif event == 'Open':
|
|
filename = sg.popup_get_file('file to open', no_window=True)
|
|
print(filename)
|
|
elif event == 'Properties':
|
|
second_window()
|
|
|
|
window.close()
|
|
|
|
|
|
test_menus()
|