예제 #1
0
파일: gui.py 프로젝트: tawfiqfm/Hack
def gui_attributes():
    optionRace = ["American Indian", "Asian", "Black", "Hispanic", "White"]
    optionGender = ["Male", "Female", "Other"]

    # Options inside gui
    layout = [
        [psg.Text("Race"), psg.Combo(optionRace)],
        [psg.Text("Gender"), psg.Combo(optionGender)],
        [psg.Text("History knowledge:     "), psg.Slider(range=(0, 100), orientation='h', resolution=5, key="HistorySlider", enable_events=True),
         psg.Text('', key='historyValue')],
        [psg.Text("Film knowledge:  "), psg.Slider(range=(0, 100), orientation='h', resolution=5, key="FilmSlider", enable_events=True),
         psg.Text('', key='filmValue')],
        [psg.Text("Sport knowledge: "), psg.Slider(range=(0, 100), orientation='h', resolution=5, key="SportsSlider", enable_events=True),
         psg.Text('', key='sportsValue')],
         [psg.Text('Progress: ', key='progressValue')],
        [psg.Button("Done")]
        ]

    window = psg.Window("Attribute Questions", layout)

    inputs = []

    add = 0
    event, values = window.read()
    values['HistorySlider'] = 0
    values['FilmSlider'] = 0
    values['SportsSlider'] = 0
    while True:
        event, values = window.read()

        window['historyValue'].Update(value=values['HistorySlider'])
        window['filmValue'].Update(value=values['FilmSlider'])
        window['sportsValue'].Update(value=values['SportsSlider'])
        add = int(values["HistorySlider"]) + int(values["FilmSlider"]) + int(values["SportsSlider"])
        window['progressValue'].Update(value=("Total: " + str(add) + "%"))

        if event in (None, "Done"):  # only activates once done or exit is pressed
            if add == 100:
                for i in values:
                    inputs.append(values[i])
                break

    window.close()

    return inputs
예제 #2
0
def main():
    layout = [[sg.Text('This is a text element')], [
        sg.Input()
    ], [
        sg.Combo(['Combo 1'])
    ], [sg.Text('If you close the browser tab, the app will exit gracefully')],
              [sg.InputText('Source')], [sg.InputText('Dest')],
              [sg.Ok(), sg.Cancel()]]

    window = sg.Window('Demo window..', layout)
    i = 0
    while True:
        event, values = window.read(timeout=1)
        if event != sg.TIMEOUT_KEY:
            print(event, values)
        if event is None:
            break
        i += 1
    window.close()
예제 #3
0
    def __init__(self):
        # initialize controller parameters (in dict)
        self.params = self.initialize_params()

        # FIWARE parameters
        self.cb_url = os.getenv("CB_URL", "http://localhost:1026")
        self.entity_id = None  # will be read on the web GUI
        self.entity_type = "PID_Controller"
        self.service = os.getenv("FIWARE_SERVICE", '')
        self.service_path = os.getenv("FIWARE_SERVICE_PATH", '')

        # Create the fiware header
        fiware_header = FiwareHeader(service=self.service,
                                     service_path=self.service_path)

        # Create orion context broker client
        self.ORION_CB = ContextBrokerClient(url=self.cb_url,
                                            fiware_header=fiware_header)

        # initial pid controller list
        self.controller_list = []
        try:
            self.refresh_list()
        except:
            pass

        # initialize gui window
        sg.theme("DarkBlue")
        pid_id_bar = [[
            sg.Text("Controller ID", size=(10, 1)),
            sg.Combo(self.controller_list, key="controller_list"),
            sg.Button("Refresh")
        ]]
        param_bars = [[
            sg.Text(param.capitalize(), size=(10, 1)),
            sg.InputText(self.params[param], key=param)
        ] for param in self.params.keys()]
        io_bars = [[sg.Button("Send"), sg.Button("Read")]]
        layout = pid_id_bar + param_bars + io_bars
        self.window = sg.Window("PID controller",
                                layout,
                                web_port=80,
                                web_start_browser=True)
예제 #4
0
def create_settings_window(settings):
    sg.theme(settings['theme'])

    def TextLabel(text):
        return sg.Text(text + ':', justification='r', size=(15, 1))

    layout = [[sg.Text('Settings', font='Any 15')],
              [
                  TextLabel('Theme'),
                  sg.Combo(sg.theme_list(), size=(20, 20), key='-THEME-')
              ], [sg.Button('Save'), sg.Button('Exit')]]

    window = sg.Window('Settings', layout, keep_on_top=True, finalize=True)

    for key in SETTINGS_KEYS_TO_ELEMENT_KEYS:  # update window with the values read from settings file
        try:
            window[SETTINGS_KEYS_TO_ELEMENT_KEYS[key]].update(
                value=settings[key])
        except Exception as e:
            print(
                f'Problem updating PySimpleGUI window from settings. Key = {key}'
            )

    return window
예제 #5
0
import datetime

DEFAULT_BASE64_ICON = b'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'


sg.ChangeLookAndFeel('GreenTan')

layout =  [
            [sg.Text('PySimpleGUIWeb running on the web and in your browser!', size=(60,1), font=('Comic sans ms', 20), text_color='red')],
            [sg.Text('This program has been running for... ', size=(30,1)),sg.Text('', size=(30,1), key='_DATE_')],
            [sg.Text('', size=(30,1), key='_TEXT_')],
            [sg.Input('Single Line Input', do_not_clear=True, enable_events=True, size=(30,1))],
            [sg.Multiline('Multiline Input', do_not_clear=True, size=(40,4), enable_events=True)],
            [sg.Multiline('Multiline Output', size=(80,8),  key='_MULTIOUT_', font='Courier 12')],
            [sg.Checkbox('Checkbox 1', enable_events=True, key='_CB1_'), sg.Checkbox('Checkbox 2', default=True, enable_events=True, key='_CB2_')],
            [sg.Combo(values=['Combo 1', 'Combo 2', 'Combo 3'], default_value='Combo 2', key='_COMBO_',enable_events=True, readonly=False, tooltip='Combo box', disabled=False, size=(12,1))],
            [sg.Listbox(values=('Listbox 1', 'Listbox 2', 'Listbox 3'), size=(10,3))],
            [sg.Slider((1,100), default_value=80, key='_SLIDER_', visible=True, enable_events=True, orientation='h')],
            [sg.Spin(values=(1,2,3),initial_value=2, size=(4,1))],
            [sg.Image(filename=r'dot:logo.jpg')],
            [sg.OK(), sg.Button('Exit', button_color=('white', 'red'))]
          ]

window = sg.Window('My PySimpleGUIWeb Window',
                   default_element_size=(30,1),
                   font='Helvetica 18',
                   background_image=r'dot:logo.jpg'
                   ).Layout(layout)

start_time = datetime.datetime.now()
while True:
예제 #6
0
HEIGHT = 7  #lines

#Credit to aminusfu : https://github.com/cherrypy/cherrypy/blob/0857fa81eb0ab647c7b59a019338bab057f7748b/cherrypy/process/wspbus.py#L305
startup_cwd = os.getcwd()  #Used in do_execv, to swap between projects

#------------- Context Manager ------------#

try:  #If started from COMMAND, user can choose his directory directly
    SELECTED_DIR = sys.argv[1]
except IndexError:
    SELECTED_DIR = ''

#If no system argument is provided, provide GUI to choose
if SELECTED_DIR == '':
    prompt_layout = [
        [sg.Combo(PROJECTS)],
        [sg.Button('Open')],
        [sg.Text(key='-INFO-', size=(20, 1))],
    ]

    prompt_window = sg.Window(
        'Select your project',
        prompt_layout,
        location=(80, 500),
    )

    while True:
        event, values = prompt_window.Read()
        if event in (None, 'Exit'):
            break
        if event == 'Open':
예제 #7
0
# import PySimpleGUI as sg
import PySimpleGUIWeb as sg
import loadMap

v = [['名称','电量','状态','位置','订单目标点'], ['Vehicle-01', '80', '等待', 'B', '无'], ['Vehicle-02', '60', '等待', 'L3', '无']]
vv = [['订单ID', '目标点', '动作', '执行状态'], ['1', 'L3', '载货', '执行完成'], ['2', 'L2', '卸货', '执行中'], ['3', 'L3', '载货', '未分配'], ['5', 'L2', '载货', '未分配']]
vvv = [['订单ID', '目标点', '动作'], ['38', 'L9', '载货'], ['38', 'L9', '载货']]
layout = [
    [sg.Text('车辆状态:', size=(10, 1), font=('Comix san ms', 16), text_color='black')],
    [sg.Table(values=v, col_widths=[4, 4, 4, 4, 10], auto_size_columns=0, num_rows=4, display_row_numbers=0, justification='center', text_color='black')],
    [sg.Text('订单状态:', size=(10, 1), font=('Comix san ms', 16), text_color='black')],
    [sg.Table(values=vv, col_widths=[6, 6, 4, 8], auto_size_columns=0, select_mode=sg.TABLE_SELECT_MODE_BROWSE, num_rows=2, display_row_numbers=False, justification='center', text_color='black')],
    [sg.Button('取消订单'), sg.Button('暂停订单'), sg.Button('继续订单')],
    [sg.Text('新建订单:', size=(10, 1), font=('Comix san ms', 16), text_color='black')],
    [sg.Text('目标点', size=(6,1)), sg.Combo(['L1', 'L2', 'L3'], size=(6, 1), auto_size_text=False), sg.Text('动作: '), sg.Combo(['无', '载货', '卸货', '充电'], size=(7, 1)), sg.Button('添加')],
    [sg.Table(values=vvv, col_widths=[5, 6, 4], auto_size_columns=0, num_rows=4, display_row_numbers=0, justification='center', text_color='black')],
    [sg.Button('取消订单',button_color=('red')), sg.Button('下单', button_color=('green'))]
]



def app():
    window = sg.Window('OpenTCS Web Client', layout, web_ip='0.0.0.0', web_port=8089)
    while True:
        event, values = window.read(timeout=1)

if __name__ == "__main__":
    map = loadMap.ModelMap()
    print(map.PointDic)
    app()
예제 #8
0
# print(points_pose)
graph_elem = sg.Graph((400, 200), (-10, -20), (390, 180),
                      enable_events=True, key='_GRAPH_', background_color='lightblue')
vehicle_graph = None
vehicle_path_graph = None
vehicle_current_order = None

layout = [
    [graph_elem],
    [sg.Text('车辆状态:', size=(10, 1), font=('Comix san ms', 16), text_color='black')],
    [sg.Table(values=v, col_widths=[4, 4, 4, 4, 10], auto_size_columns=0, num_rows=4, display_row_numbers=0, justification='center', text_color='black')],
    [sg.Text('订单状态:', size=(10, 1), font=('Comix san ms', 16), text_color='black')],
    [sg.Table(values=vv, col_widths=[6, 6, 4, 8], auto_size_columns=0, select_mode=sg.TABLE_SELECT_MODE_BROWSE, num_rows=2, display_row_numbers=False, justification='center', text_color='black')],
    [sg.Button('取消订单'), sg.Button('暂停订单'), sg.Button('继续订单')],
    [sg.Text('新建订单:', size=(10, 1), font=('Comix san ms', 16), text_color='black')],
    [sg.Text('目标点', size=(6,1)), sg.Combo(xxx, size=(6, 1), auto_size_text=False, enable_events=True, key='Target'), sg.Text('动作: '), sg.Combo(['无', '载货', '卸货', '充电'], size=(7, 1), enable_events=True, key='action'), sg.Button('添加')],
    [sg.Table(values=vvv, col_widths=[5, 6, 4], auto_size_columns=0, num_rows=4, display_row_numbers=0, justification='center', text_color='black', key='transport')],
    [sg.Button('取消订单',button_color=('red')), sg.Button('下单', button_color=('green'))]
]



def app():
    # global vvv

    # print(xxx)
    global vehicle_graph
    global vehicle_path_graph
    global vehicle_current_order
    window = sg.Window('OpenTCS Web Client', layout, web_ip='0.0.0.0', web_port=8089, finalize=True)
    window.Finalize()
예제 #9
0
        window.Refresh()



port, interval, wave, exportoption = readConfig()
connected = getAvailable()

# The GUI layout
layout = [[
    sg.Text('VSCapture Web Interface', size=(120, 4), font=('Helvetica', 24))
], [
    sg.Combo(
        values=connected,
        default_value=port,
        key='_PORT_',
        enable_events=True,
        readonly=False,
        tooltip='Select port that is connected to the anaesthetic machine',
        disabled=False,
        size=(30, 1)),
    sg.Text('Port', size=(60, 1), font=('Helvetica', 16))
], [
    sg.Combo(
        values=list(INTERVALS.keys()),
        default_value=interval,
        key='_INTERVAL_',
        enable_events=True,
        readonly=False,
        tooltip='How frequently do you want to log the data?',
        disabled=False,
        size=(30, 1)),