pismotek-remote/pismotek-remote.py

72 lines
1.6 KiB
Python

#!/bin/env python
import os
import PySimpleGUI as sg
"""
Pismotek-Remote - Remote Desktop Application
To "swap out" a portion of a window, use a Column element for that portion. Add multiple Columns
on the same row and make only 1 of them active at a time
"""
def resource_path(relative_path):
""" Get absolute path to resource, works for dev and for PyInstaller """
try:
base_path = sys._MEIPASS
except Exception:
base_path = os.path.abspath(".")
return os.path.join(base_path, relative_path)
logo = resource_path("logo.png")
# ----------- Create the 3 layouts this Window will display -----------
layout1 = [
[
sg.Image(logo),
],
[
sg.Text('This is layout 1'),
],
]
layout2 = [
[sg.Text('This is layout 2')],
]
layout3 = [
[sg.Text('This is layout 3')],
]
# ----------- Create actual layout using Columns and a row of Buttons
layout = [
[
sg.Column(layout1, key='-COL1-'),
sg.Column(layout2, visible=False, key='-COL2-'),
sg.Column(layout3, visible=False, key='-COL3-')
],
[
sg.Button('1'),
sg.Button('2'),
sg.Button('3'),
sg.Button('Exit')
]
]
window = sg.Window('Swapping the contents of a window', layout)
layout = 1 # The currently visible layout
while True:
event, values = window.read()
print(event, values)
if event in (sg.WIN_CLOSED, 'Exit'):
break
elif event in '123':
window[f'-COL{layout}-'].update(visible=False)
layout = int(event)
window[f'-COL{layout}-'].update(visible=True)
window.close()