I am trying to create a few windows, which I need all of them to be in fullscreen. I am aware of .Maximize() but I can't get it work properly in this code. Any ideas? Thank you!
import PySimpleGUI as sg
def make_window1():
layout = [[sg.Text('Window 1')],
[sg.Button('Next >'), sg.Button('Exit')]]
return sg.Window('Window 1', layout, finalize=True).Finalize()
def make_window2():
layout = [[sg.Text('Window 2')],
[sg.Button('Next >'), sg.Button('Exit')]]
return sg.Window('Window 2', layout, finalize=True).Finalize()
window1, window2 = make_window1(), None
while True:
window, event, values = sg.read_all_windows()
window.Maximize()
if window == window1 and event in (sg.WIN_CLOSED, 'Exit'):
break
if window == window1:
if event == 'Next >':
window1.hide()
window2 = make_window2()
if window == window2 and event in (sg.WIN_CLOSED, 'Exit'):
break
window.close()
Just call method maximize()
of window after it finalized.
Four ways here to show the switching of windows.
import PySimpleGUI as sg
def make_window1():
layout = [[sg.Text('Window 1')],
[sg.Button('Next >'), sg.Button('Exit')]]
window = sg.Window('Window 1', layout, finalize=True)
window.maximize()
return window
def make_window2():
layout = [[sg.Text('Window 2')],
[sg.Button('Next >'), sg.Button('Exit')]]
window = sg.Window('Window 1', layout, finalize=True)
window.maximize()
return window
window, now = make_window1(), 1
while True:
event, values = window.read()
if event in (sg.WINDOW_CLOSED, 'Exit'):
break
elif event == 'Next >':
win, now = (make_window1(), 1) if now == 2 else (make_window2(), 2)
window.close()
window = win
window.close()
import PySimpleGUI as sg
def make_window1():
layout = [[sg.Text('Window 1')],
[sg.Button('Next >'), sg.Button('Exit')]]
window = sg.Window('Window 1', layout, finalize=True)
return window
def make_window2():
layout = [[sg.Text('Window 2')],
[sg.Button('Next >'), sg.Button('Exit')]]
window = sg.Window('Window 1', layout, finalize=True)
return window
window1, window2 = make_window1(), make_window2()
window1.maximize()
window2.hide()
while True:
window, event, values = sg.read_all_windows()
if event in (sg.WINDOW_CLOSED, 'Exit'):
break
elif event == 'Next >':
window.hide()
window = window1 if window == window2 else window2
window.un_hide()
window.maximize()
window1.close()
window2.close()
sg.Column
with attribute visible
True or Falseimport PySimpleGUI as sg
def swap(now, step):
window[f'COLUMN {now}'].update(visible=False)
now = (now+step) % total
window[f'COLUMN {now}'].update(visible=True)
return now
def column_layout(index):
layout = [[sg.Text(f'Window {index+1}')]]
return layout
total, now = 5, 0
sg.theme("DarkBlue")
sg.set_options(font=('Courier New', 16))
layout = [
[sg.Column(column_layout(i), visible=(i==0), key=f'COLUMN {i}') for i in range(total)],
[sg.VPush()],
[sg.Button('< PREV'), sg.Push(), sg.Button('Exit'), sg.Push(), sg.Button('NEXT >')],
]
window = sg.Window('Title', layout, finalize=True)
window.maximize()
while True:
event, values = window.read()
if event==sg.WINDOW_CLOSED or event.startswith('Exit'):
break
elif event in ("< PREV", "NEXT >"):
now = swap(now, 1 if event == "NEXT >" else -1)
window.close()
Using sg.TabGroup
import PySimpleGUI as sg
def tab_layout(index):
layout = [[sg.Text(f'Window {index+1}')]]
return layout
sg.theme("DarkBlue")
sg.set_options(font=('Courier New', 16))
total, now = 5, 0
tab_group = [[sg.Tab(f"TAB {i}", tab_layout(i), key=f"TAB {i}")] for i in range(5)]
layout = [
[sg.TabGroup(tab_group, border_width=0, pad=(0, 0), expand_x=True, expand_y=True, key='TABGROUP')],
[sg.VPush()],
[sg.Button('< PREV'), sg.Push(), sg.Button('Exit'), sg.Push(), sg.Button('NEXT >')],
]
window = sg.Window("Title", layout, finalize=True)
style = sg.ttk.Style()
style.layout('TNotebook.Tab', []) # Hide tab bar
window.maximize()
while True:
event, values = window.read()
if event in (sg.WINDOW_CLOSED, "Exit"):
break
elif event in ("< PREV", "NEXT >"):
now = (now+1)%total if event == "NEXT >" else (now-1)%total
window[f"TAB {now}"].select()
window.close()