moved body of app into main() and build_layout()
This commit is contained in:
parent
83914fa353
commit
e4abc271ed
@ -4,6 +4,7 @@ import os
|
|||||||
import psutil
|
import psutil
|
||||||
import PySimpleGUI as sg
|
import PySimpleGUI as sg
|
||||||
import subprocess
|
import subprocess
|
||||||
|
import sys
|
||||||
import time
|
import time
|
||||||
|
|
||||||
"""
|
"""
|
||||||
@ -13,6 +14,7 @@ import time
|
|||||||
on the same row and make only 1 of them active at a time
|
on the same row and make only 1 of them active at a time
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
# ----------- Utility functions -----------
|
||||||
def resource_path(relative_path):
|
def resource_path(relative_path):
|
||||||
""" Get absolute path to resource, works for dev and for PyInstaller """
|
""" Get absolute path to resource, works for dev and for PyInstaller """
|
||||||
try:
|
try:
|
||||||
@ -21,40 +23,50 @@ def resource_path(relative_path):
|
|||||||
base_path = os.path.abspath(".")
|
base_path = os.path.abspath(".")
|
||||||
return os.path.join(base_path, relative_path)
|
return os.path.join(base_path, relative_path)
|
||||||
|
|
||||||
|
def get_service(name):
|
||||||
|
""" return information about services """
|
||||||
|
service = None
|
||||||
|
try:
|
||||||
|
service = psutil.win_service_get(name)
|
||||||
|
service = service.as_dict()
|
||||||
|
except Exception as ex:
|
||||||
|
pass
|
||||||
|
return service
|
||||||
|
|
||||||
logo = resource_path("logo.png")
|
def build_layout():
|
||||||
|
logo = resource_path("logo.png")
|
||||||
|
# ----------- Create the 3 layouts this Window will display -----------
|
||||||
|
layout1 = [
|
||||||
|
[sg.Push(), sg.Image(logo), sg.Push()],
|
||||||
|
[sg.Text('This program allows Will B. to remotely control your')],
|
||||||
|
[sg.Text('computer through the internet')],
|
||||||
|
[sg.Text('Is Will waiting for you - *right now* - to run this program?')],
|
||||||
|
]
|
||||||
|
|
||||||
# ----------- Create the 3 layouts this Window will display -----------
|
layout2 = [
|
||||||
layout1 = [
|
[sg.Text('Remote connection started')],
|
||||||
[sg.Push(), sg.Image(logo), sg.Push()],
|
[sg.Text('Allow connection through firewall if asked.')],
|
||||||
[sg.Text('This program allows Will B. to remotely control your')],
|
[sg.Text('')],
|
||||||
[sg.Text('computer through the internet')],
|
[sg.Text('Click Exit when finished')],
|
||||||
[sg.Text('Is Will waiting for you - *right now* - to run this program?')],
|
]
|
||||||
]
|
|
||||||
|
|
||||||
layout2 = [
|
layout3 = [
|
||||||
[sg.Text('Remote connection started')],
|
[sg.Text('Please run this program ONLY when Will is waiting for you')],
|
||||||
[sg.Text('Allow connection through firewall if asked.')],
|
[sg.Text('Click Exit to continue')],
|
||||||
[sg.Text('')],
|
]
|
||||||
[sg.Text('Click Exit when finished')],
|
|
||||||
]
|
|
||||||
|
|
||||||
layout3 = [
|
# ----------- Create actual layout using Columns and a row of Buttons
|
||||||
[sg.Text('Please run this program ONLY when Will is waiting for you')],
|
layout = [
|
||||||
[sg.Text('Click Exit to continue')],
|
[
|
||||||
]
|
sg.Column(layout1, key='-COL1-'),
|
||||||
|
sg.Column(layout2, visible=False, key='-COL2-'),
|
||||||
|
sg.Column(layout3, visible=False, key='-COL3-')
|
||||||
|
],
|
||||||
|
[sg.VPush()],
|
||||||
|
[sg.Push(), sg.Button('No'), sg.Button('Yes'), sg.Button('Exit', visible=False)]
|
||||||
|
|
||||||
# ----------- Create actual layout using Columns and a row of Buttons
|
]
|
||||||
layout = [
|
return layout
|
||||||
[
|
|
||||||
sg.Column(layout1, key='-COL1-'),
|
|
||||||
sg.Column(layout2, visible=False, key='-COL2-'),
|
|
||||||
sg.Column(layout3, visible=False, key='-COL3-')
|
|
||||||
],
|
|
||||||
[sg.VPush()],
|
|
||||||
[sg.Push(), sg.Button('No'), sg.Button('Yes'), sg.Button('Exit', visible=False)]
|
|
||||||
|
|
||||||
]
|
|
||||||
|
|
||||||
|
|
||||||
def vncdisconnect():
|
def vncdisconnect():
|
||||||
@ -71,31 +83,47 @@ def vncdisconnect():
|
|||||||
# subprocess.call("tvnserver.exe -controlservice -connect remotesupport.pismotek.com", shell=True)
|
# subprocess.call("tvnserver.exe -controlservice -connect remotesupport.pismotek.com", shell=True)
|
||||||
# time.sleep(3)
|
# time.sleep(3)
|
||||||
|
|
||||||
|
def tab_no(window):
|
||||||
|
""" handle displaying the no tab/column """
|
||||||
|
window['-COL1-'].update(visible=False)
|
||||||
|
window['-COL3-'].update(visible=True)
|
||||||
|
window['No'].update(visible=False)
|
||||||
|
window['Yes'].update(visible=False)
|
||||||
|
window['Exit'].update(visible=True)
|
||||||
|
|
||||||
window = sg.Window('Pismotek', layout, size=(380, 350))
|
def tab_yes(window):
|
||||||
|
""" handle displaying the yes tab/column"""
|
||||||
|
window['-COL1-'].update(visible=False)
|
||||||
|
window['-COL2-'].update(visible=True)
|
||||||
|
window['No'].update(visible=False)
|
||||||
|
window['Yes'].update(visible=False)
|
||||||
|
window['Exit'].update(visible=True)
|
||||||
|
# window.perform_long_operation(vncdisconnect, '-VNCCONNECT-')
|
||||||
|
|
||||||
|
def tvn_get_state():
|
||||||
|
""" get current state of tvnserver - retrun stopped if does not exist """
|
||||||
|
status = "stopped"
|
||||||
|
service = get_service('tvnserver')
|
||||||
|
if service:
|
||||||
|
status = service["status"]
|
||||||
|
return status
|
||||||
|
|
||||||
layout = 1 # The currently visible layout
|
def main():
|
||||||
while True:
|
tvn_state = tvn_get_state()
|
||||||
event, values = window.read()
|
print(tvn_state)
|
||||||
if event in (sg.WIN_CLOSED, 'Exit'):
|
layout = build_layout()
|
||||||
break
|
window = sg.Window('Pismotek', layout, size=(380, 350))
|
||||||
elif event == 'No':
|
while True:
|
||||||
window['-COL1-'].update(visible=False)
|
event, values = window.read()
|
||||||
layout = int(3)
|
if event in (sg.WIN_CLOSED, 'Exit'):
|
||||||
window['-COL3-'].update(visible=True)
|
break
|
||||||
window['No'].update(visible=False)
|
elif event == 'No':
|
||||||
window['Yes'].update(visible=False)
|
tab_no(window)
|
||||||
window['Exit'].update(visible=True)
|
elif event == 'Yes':
|
||||||
elif event == 'Yes':
|
tab_yes(window)
|
||||||
window['-COL1-'].update(visible=False)
|
# elif event == '-VNCCONNECT-':
|
||||||
layout = int(2)
|
# print("Woot")
|
||||||
window['-COL2-'].update(visible=True)
|
window.close()
|
||||||
window['No'].update(visible=False)
|
|
||||||
window['Yes'].update(visible=False)
|
|
||||||
window['Exit'].update(visible=True)
|
|
||||||
# window.perform_long_operation(vncdisconnect, '-VNCCONNECT-')
|
|
||||||
# elif event == '-VNCCONNECT-':
|
|
||||||
# print("Woot")
|
|
||||||
window.close()
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
|
Loading…
Reference in New Issue
Block a user