def pick_an_instrument(): ''' Select the instrument to generate TC files for''' instruments = ['LPC', 'RACHuTS', 'FLOATS'] instrument_layout = [[ sg.InputCombo(values=instruments, key='_inst_', font=Font) ]] layout_pick_instrument = [[ sg.Frame('Select Instrument: ', instrument_layout, font=Font) ], [sg.Submit(font=Font), sg.Cancel(font=Font)]] instrument_window = sg.Window('Select Instrument', layout_pick_instrument) event, values = instrument_window.Read() instrument_window.Close() if event is None or event == 'Cancel': return None if event == 'Submit': print(values['_inst_']) return values['_inst_']
title='Options', title_color='red', relief=sg.RELIEF_SUNKEN, tooltip='Use these to set flags', ), sg.Stretch() ], [ sg.Multiline( default_text= 'This is the default Text should you decide not to type anything', size=(220, 80)), sg.Multiline(default_text='A second multi-line', size=(220, 80)) ], [ sg.InputCombo(('Combobox 1', 'Combobox 2'), size=(150, 22)), sg.Stretch(), sg.Slider(range=(1, 100), orientation='h', size=(300, 22), default_value=85) ], [sg.InputOptionMenu(('Menu Option 1', 'Menu Option 2', 'Menu Option 3'))], [ sg.Listbox(values=('Listbox 1', 'Listbox 2', 'Listbox 3'), size=(200, 100), select_mode=sg.LISTBOX_SELECT_MODE_EXTENDED), sg.Stretch(), sg.Frame('Labelled Group', [[ sg.Slider(range=(1, 100), orientation='v',
def __init__(self): self.WINDOW_TITLE = "MobilePayAlerts" self.event_combiner = {"_BTN_GENQR_": qr.generate} tab_1 = sg.Tab(text["tab_1"]["text"], [[ sg.HorizontalSeparator() ], [ sg.Button("Start", key="_BTN_START_", size=(250, 40), visible=True) ], [ sg.HorizontalSeparator() ], [ sg.Button("Stop", key="_BTN_STOP_", size=(250, 40), visible=False) ], [ sg.HorizontalSeparator() ], [sg.Button("Test", key="_BTN_TEST_", size=(250, 40), visible=True)], [sg.HorizontalSeparator()]]) tab_2 = sg.Tab(text["tab_2"]["text"], [ [ sg.Text(text["label_settings"]["text"], font=("def", "def", "bold")) ], [ sg.Text(text["label_name"]["text"], size=(11, 0.6)), sg.InputText(default_text=cfg["default_name"], key=text["input_name"]["key"], do_not_clear=True, tooltip=text["input_name"]["tt"]) ], [ sg.Text(text["label_msg"]["text"], size=(11, 0.6)), sg.InputText(default_text=cfg["default_msg"], key=text["input_msg"]["key"], do_not_clear=True, tooltip=text["input_msg"]["tt"]) ], [ sg.Text(text["label_lang"]["text"], size=(11, 0.6)), sg.InputCombo(text["languages"], key=text["combobox"]["key"], default_value=cfg["language"].capitalize()) ], [ sg.Button(text["btn_save"]["text"], key=text["btn_save"]["key"], tooltip=text["btn_save"]["tt"]) ], [sg.HorizontalSeparator()], [ sg.Button(text["btn_generate"]["text"], key=text["btn_generate"]["key"], tooltip=text["btn_generate"]["tt"]) ], [sg.HorizontalSeparator()], [ sg.Text(text["label_other_settings"]["text"], font=("def", "def", "bold")) ], [ sg.Button(text["btn_reset"]["text"], key=text["btn_reset"]["key"]), sg.Button(text["btn_setup"]["text"], key=text["btn_setup"]["text"]) ], ]) self.layout = [[sg.TabGroup([[tab_1, tab_2]])]]
def behavior_window_handler(behavior_type: str, select: list): listbox_unit = sg.Listbox(list(UNIT.keys()), size=LISTBOX_SIZE, key='unit', enable_events=True) widgets = [ create_frame('Unit', [listbox_unit]), create_frame('Attributes', [ sg.Listbox([], key='attrs', enable_events=True, size=LISTBOX_SIZE) ]), create_frame( 'Operations', [sg.Listbox([], key='ops', enable_events=True, size=LISTBOX_SIZE) ]), create_frame('Attribute value', [ sg.InputCombo( [""], disabled=True, key="attr_value", size=(100, 20)) ]), create_frame('Actions', [ sg.Listbox( [], key='actions', enable_events=True, size=LISTBOX_SIZE) ]), create_frame('Action value', [sg.InputText("0", disabled=True, key='action_value')]), create_frame('Action duration', [sg.InputText("0", disabled=True, key='action_duration')]) ] behavior_window = sg.Window("Add behavior", layout=[ widgets, [ sg.Button('Add', key='+_behavior', size=BUTTON_SIZE), sg.CloseButton('Close', key='Close_behavior', size=BUTTON_SIZE) ] ]) behavior_window.Finalize() while True: event, values = behavior_window.Read() if event == '+_behavior': key = all_behavior[behavior_type]['counter'] tree = all_behavior[behavior_type]['tree_data'] behavior_tree = all_behavior[behavior_type]['tree'] storage = all_behavior[behavior_type]['storage'] selected = all_behavior[behavior_type]['select'] key.increment() new_values = { k: v[0] if not isinstance(v, str) else v for k, v in values.items() if v } if select: for i in select: tree.Insert(i, str(key.count), convert_text(str(key.count), new_values), values) else: tree.Insert(select, str(key.count), convert_text(str(key.count), new_values), values) behavior_tree.Update(tree) parents = selected.Values parents.append(str(key.count)) selected.Update(values=parents, disabled=False) storage.insert(select, str(key.count), new_values) elif event == 'Close_behavior': break elif event == 'unit': vals = list(ATTRIBUTES[values['unit'][0]].keys()) widgets[1].Rows[0][0].Update(vals) elif event == 'attrs': attrs = values.get('attrs', None) if attrs: widgets[3].Rows[0][0].Update(values=ATTR_VALUES[attrs[0]], disabled=False) widgets[2].Rows[0][0].Update(list(OPERATORS[attrs[0]].keys())) widgets[4].Rows[0][0].Update(list(ACTIONS.keys())) elif event == 'actions': if values.get('actions', []): if values.get('actions', [''])[0] != 'do nothing': widgets[5].Rows[0][0].Update(disabled=False) widgets[6].Rows[0][0].Update(disabled=False) else: widgets[5].Rows[0][0].Update(disabled=True) return
import json from typing import Iterable from gui.general import BUTTON_SIZE import PySimpleGUIQt as sg WAYPOINT_META = ['grind', 'vendor', 'ghost'] WAYPOINT_FORMAT = ['circle', 'line'] waypoint_selector_frame = [ sg.Frame('Waypoint', [[ sg.Text('Waypoint type: '), sg.InputCombo(WAYPOINT_META, key='waypoint_meta', enable_events=True, size=(150, 30)) ], [ sg.Text('Waypoint format: '), sg.InputCombo(WAYPOINT_FORMAT, key='waypoint_format', enable_events=True, size=(150, 30)) ]]) ] waypoint_frame = [ sg.Frame('Waypoint', [ [ sg.Text('Waypoint path: ', pad=(20, 20)), sg.InputText(key='save_waypoint'),