Esempio n. 1
0
def themewindow():
    config = ConfigParser()
    config.read('config.cfg')
    layout = [[gui.T('Choose Theme')],
              [
                  gui.Radio('Light', 'RADIO1'),
                  gui.Radio('Dark', 'RADIO01', key='_THEME_')
              ], [gui.Button('Exit'), gui.Button('Enter')]]
    window = gui.Window('Theme Picker',
                        no_titlebar=True,
                        keep_on_top=True,
                        grab_anywhere=True).Layout(layout)
    while True:
        event, values = window.Read()
        if event == 'Exit':
            break
        elif event == 'Enter':
            if values['_THEME_'] == True:
                config['DEFAULT']['theme'] = 'dark'
                with open('config.cfg', 'w') as f:
                    config.write(f)
                break
            elif values['_THEME_'] == False:
                config['DEFAULT']['theme'] = 'light'
                with open('config.cfg', 'w') as f:
                    config.write(f)
                break
    config.read('config.cfg')
    theme = config['DEFAULT']['theme']
    window.Close()
    return theme
Esempio n. 2
0
    def _localization_frame_():
        """
        This frame helps us group settings related to region-specific measurement systems

        :return:
        """

        import PySimpleGUIQt as qt
        frame = [[
            qt.Text('Primary Temperature Unit:', justification='left'),
            qt.Radio('Fahrenheit', group_id='temp_unit', default=True),
            qt.Radio('Celsius', group_id='temp_unit'),
            qt.Radio('Kelvin', group_id='temp_unit')
        ]]
        return frame
Esempio n. 3
0
def main():
    layout = [[
        gui.T('Have You Installed Theos Before? ',
              font=('Arial', 10),
              justification='center')
    ],
              [
                  gui.Radio('No', 'RADIO1', default=True),
                  gui.Radio('Yes', 'RADIO1', key='_RADIOYES_', default=True)
              ], [gui.Button('Exit'), gui.Button('Enter')]]
    window = gui.Window('Check Theos Install',
                        no_titlebar=True,
                        keep_on_top=True,
                        grab_anywhere=True).Layout(layout)
    while True:
        event, values = window.Read()
        if event == 'Exit':
            exit()
            break
        if event == 'Enter':
            if values['_RADIOYES_'] == True:
                window.Close()
                break
            elif values['_RADIOYES_'] == False:
                while True:
                    window2 = gui.Window(
                        'Open Tutorial',
                        no_titlebar=True,
                        keep_on_top=True,
                        grab_anywhere=True).Layout([[
                            gui.Text('Please Install Theos First ',
                                     justification='center')
                        ], [gui.Button('Exit'),
                            gui.Button('Open Link')]])
                    event, values = window2.Read()
                    if event == 'Exit':
                        window2.Close()
                        break
                    elif event == 'Open Link':
                        webbrowser.open_new_tab(
                            'https://github.com/theos/theos')
                        window2.Close()
                        break

    theosgui()
Esempio n. 4
0
    def choose_seed_action(self):
        logger.debug('In choose_seed_action')
        layout = [[
            sg.Text(
                "Do you want to create a new seed, or to restore a wallet using an existing seed?"
            )
        ], [sg.Radio('Create a new seed', 'radio1', key='create')],
                  [sg.Radio('I already have a seed', 'radio1', key='restore')],
                  [sg.Button('Cancel'), sg.Button('Next')]]
        window = sg.Window("Satochip-Bridge: Create or restore seed",
                           layout,
                           icon=self.satochip_icon)
        event, values = window.read()
        window.close()
        del window

        logger.debug("Event:" + str(type(event)) + str(event))
        logger.debug("Values:" + str(type(values)) + str(values))
        #Event:<class 'str'>Next
        #Values:<class 'dict'>{'create': True, 'restore': False}
        return (event, values)
Esempio n. 5
0
def selectPlotPopup(listOptions):
    optionsColumn = lambda groupID: [[
        pygui.Radio(
            text=str(option), key=str(option) + str(groupID), group_id=groupID)
    ] for option in listOptions]
    xColumn = pygui.Column([[pygui.Text("x axis")]] + optionsColumn("x"),
                           size=(300, 300),
                           scrollable=True)
    yColumn = pygui.Column([[pygui.Text("y axis")]] + optionsColumn("y"),
                           size=(300, 300),
                           scrollable=True)
    plotWindow = pygui.Window(title="Select metrics to be plotted",
                              layout=[[xColumn, yColumn],
                                      [pygui.Button("Plot")]])

    #main loop
    while True:
        event, values = plotWindow.read()
        if (event == "Plot"):
            #get the keys
            xmetric = ""
            ymetric = ""
            for (key, value) in values.items():
                if value:
                    if key[-1] == "x":
                        xmetric = key[:-1]
                    else:
                        ymetric = key[:-1]

            #get the data
            xdata = []
            ydata = []
            for data in [(xdata := [], xmetric), (ydata := [], ymetric)]:
                for frame in dataLog:
                    data[0].append(frame[data[1]])

            #plot the data
            plt.plot(xdata, ydata)
            plt.xlabel(xmetric)
            plt.ylabel(ymetric)
            plt.show()
Esempio n. 6
0
def main():
    sg.ChangeLookAndFeel('GreenTan')
    # sg.SetOptions(element_padding=(0,0))
    # ------ Menu Definition ------ #
    menu_def = [
        ['&File', ['&Open', '&Save', '&Properties', 'E&xit']],
        [
            '&Edit',
            ['&Paste', [
                'Special',
                'Normal',
            ], 'Undo'],
        ],
        ['&Toolbar', ['Command &1', 'Command &2', 'Command &3', 'Command &4']],
        ['&Help', '&About...'],
    ]

    treedata = sg.TreeData()

    treedata.Insert(
        "",
        '_A_',
        'Tree Item 1',
        [1, 2, 3],
    )
    treedata.Insert(
        "",
        '_B_',
        'B',
        [4, 5, 6],
    )
    treedata.Insert(
        "_A_",
        '_A1_',
        'Sub Item 1',
        ['can', 'be', 'anything'],
    )
    treedata.Insert(
        "",
        '_C_',
        'C',
        [],
    )
    treedata.Insert(
        "_C_",
        '_C1_',
        'C1',
        ['or'],
    )
    treedata.Insert("_A_", '_A2_', 'Sub Item 2', [None, None])
    treedata.Insert("_A1_", '_A3_', 'A30', ['getting deep'])
    treedata.Insert("_C_", '_C2_', 'C2', ['nothing', 'at', 'all'])

    for i in range(100):
        treedata.Insert('_C_', i, i, [])

    frame1 = [
        [sg.Input('Input Text', size=(250, 35)),
         sg.Stretch()],
        [
            sg.Multiline(size=(250, 75), default_text='Multiline Input'),
            sg.MultilineOutput(size=(250, 75), default_text='Multiline Output')
        ],
    ]

    frame2 = [
        [sg.Listbox(['Listbox 1', 'Listbox 2', 'Listbox 3'], size=(200, 85))],
        [
            sg.Combo(['Combo item 1', 'Combo item 2', 'Combo item 3'],
                     size=(200, 35))
        ],
        [sg.Spin([1, 2, 3], size=(40, 30))],
    ]

    frame3 = [
        [sg.Checkbox('Checkbox1', True),
         sg.Checkbox('Checkbox1')],
        [
            sg.Radio('Radio Button1', 1),
            sg.Radio('Radio Button2', 1, default=True),
            sg.Stretch()
        ],
    ]

    frame4 = [
        [
            sg.Slider(range=(0, 100),
                      orientation='v',
                      size=(3, 30),
                      default_value=40),
            sg.Dial(range=(0, 100),
                    tick_interval=50,
                    size=(150, 150),
                    default_value=40),
            sg.Stretch()
        ],
    ]
    matrix = [[str(x * y) for x in range(4)] for y in range(3)]

    frame5 = [
        [
            sg.Table(values=matrix,
                     max_col_width=25,
                     auto_size_columns=True,
                     display_row_numbers=True,
                     change_submits=False,
                     bind_return_key=True,
                     justification='right',
                     num_rows=8,
                     alternating_row_color='lightblue',
                     key='_table_',
                     text_color='black'),
            sg.Tree(data=treedata,
                    headings=['col1', 'col2', 'col3'],
                    change_submits=True,
                    auto_size_columns=True,
                    num_rows=10,
                    col0_width=10,
                    key='_TREE_',
                    show_expanded=True,
                    size=(200, 150)),
            sg.Stretch()
        ],
    ]

    graph_elem = sg.Graph((880, 150), (0, 0), (600, 300), key='+GRAPH+')

    frame6 = [
        [graph_elem, sg.Stretch()],
    ]

    tab1 = sg.Tab('Graph Number 1', frame6)
    tab2 = sg.Tab('Graph Number 2', [[]])

    layout = [
        [sg.Menu(menu_def)],
        [
            sg.Image(data_base64=logo),
            sg.Frame('Input Text Group', frame1, title_color='red'),
            sg.Stretch()
        ],
        [
            sg.Frame('Multiple Choice Group', frame2, title_color='green'),
            sg.Frame('Binary Choice Group', frame3, title_color='purple'),
            sg.Frame('Variable Choice Group', frame4, title_color='blue'),
            sg.Stretch()
        ],
        [
            sg.Frame('Structured Data Group', frame5, title_color='red'),
        ],
        # [sg.Frame('Graphing Group', frame6)],
        [sg.TabGroup([[tab1, tab2]])],
        [
            sg.ProgressBar(max_value=600,
                           start_value=400,
                           size=(600, 25),
                           key='+PROGRESS+'),
            sg.Stretch(),
            sg.ButtonMenu('&Menu', ['Menu', ['&Pause Graph', 'Menu item']],
                          key='_MENU_'),
            sg.Button('Button'),
            sg.Button('Exit')
        ],
    ]

    window = sg.Window('Window Title',
                       font=('Helvetica', 13),
                       default_button_element_size=(100, 30),
                       auto_size_buttons=False,
                       default_element_size=(200,
                                             22)).Layout(layout).Finalize()
    graph_elem.DrawCircle((200, 200), 50, 'blue')
    i = 0
    graph_paused = False
    while True:  # Event Loop
        # sg.TimerStart()
        event, values = window.Read(timeout=0)
        if event is None or event == 'Exit':
            break
        if event == 'Button':
            print(event, values)
        if values['_MENU_'] == 'Pause Graph':
            graph_paused = not graph_paused
        if not graph_paused:
            i += 1

            if i >= 600:
                graph_elem.Move(-1, 0)
            graph_elem.DrawLine((i, 0), (i, randint(0, 300)),
                                width=1,
                                color='#{:06x}'.format(randint(0, 0xffffff)))
        window.FindElement('+PROGRESS+').UpdateBar(i % 600)

        # sg.TimerStop()
    window.Close()
Esempio n. 7
0
     sg.Text('(Almost) All widgets in one Window!',
             justification='c',
             font=("Helvetica", 25),
             relief=sg.RELIEF_RIDGE)
 ], [sg.Text('Here is some text.... and a place to enter text')],
 [sg.InputText('This is my text', size=(400, 22))],
 [
     sg.Frame(
         layout=[[
             sg.Checkbox('Checkbox', size=(185, 22)),
             sg.Checkbox('My second checkbox!', default=True)
         ],
                 [
                     sg.Radio(
                         'My first Radio!',
                         "RADIO1",
                         default=True,
                         size=(180, 22),
                     ),
                     sg.Radio('My second Radio!', "RADIO1")
                 ],
                 [
                     sg.Radio(
                         'Third Radio!',
                         "RADIO2",
                         default=True,
                         size=(180, 22),
                     ),
                     sg.Radio('Fourth Radio!', "RADIO2")
                 ]],
         title='Options',
         title_color='red',
Esempio n. 8
0
        if event2 == sg.WINDOW_CLOSED:
            break
        window2.close()
    window.Enable()


ABA1_COL1 = [
    [sg.Text("Pesquisa por nome (deixe vazio para ver todas as receitas):")],
    [sg.Input(key="nome_val"), sg.Button("Pesquisar", size=(10, 1), key="pesq_nome")],
    [
        sg.Text(
            "Pesquisa por ingredientes (separado por vírgula, deixe vazio para ver todas as receitas):"
        )
    ],
    [
        sg.Radio("Apenas", "rgroup", default=True, key="rad_apenas"),
        sg.Radio("Também", "rgroup", key="rad_tambem"),
    ],
    [
        sg.Input(key="ingred_val"),
        sg.Button("Pesquisar", size=(10, 1), key="pesq_ingred"),
    ],
    [sg.Text("Resultados:")],
    [sg.Listbox([], enable_events=True, key="resultados")],
]
ABA1_COL2 = [
    [
        sg.Text("Listar todos os ingredientes:"),
        sg.Button("Listar", size=(10, 1), key="con_lista_ingredientes"),
        sg.Text("Listar todas as categorias:"),
        sg.Button("Listar", size=(10, 1), key="con_lista_cat"),
Esempio n. 9
0
""" Define information for the Add New Player window """

import PySimpleGUIQt as qt

from ..start import alerts

frame1 = [[
    qt.Text('Name:', font="Monopoly, Bold", text_color='#C70000'),
    qt.InputText(key='user_name')
],
          [
              qt.Text('Gender:', font="Monopoly, Bold", text_color='#C70000'),
              qt.Radio('Male', group_id='gender', key='gender_radio_male'),
              qt.Radio('Female', group_id='gender', key='gender_radio_female')
          ]]


def window():
    alerts.not_yet_implemented()


active = False
Esempio n. 10
0
                   key='+LIST+',
                   size=(200, 150),
                   text_color='blue'),
        sg.Slider((1, 100), orientation='v', key='+SLIDER 1+')
    ],
    [
        sg.Slider((1, 10), size=(200, 30), orientation='h', key='+SLIDER 2+'),
        sg.Stretch()
    ],
    [
        sg.Checkbox('Checkbox 1', key='+CB1+'),
        sg.Checkbox('Checkbox 2', key='+CB2')
    ],
    [sg.Checkbox('Checkbox 3'),
     sg.Checkbox('Checkbox 4')],
    [sg.Radio('Radio1', group_id=1),
     sg.Radio('Radio2', group_id=1)],
    [sg.Spin((5, 8), size=(100, 30))],
    [
        sg.Multiline('This is a Multiline Element',
                     size=(300, 300),
                     key='+MULTI+')
    ],
    [
        sg.Button('My Button', size=(120, 30)),
        sg.Exit(),
        sg.Button('Change', key='_CHANGE_')
    ],
]

window = sg.Window('My first QT Window',
Esempio n. 11
0
def main():
    # set program theme
    theme_name = 'DarkPurple4'
    sg.theme(theme_name)

    os.system('color')

    # define default values for UI
    default_size_text = (30, 1)
    default_size_input = (50, 1)
    default_size_input_with_button = ((30, 1), (15, 1))

    # define file handeling modes for song duplicates
    dupli_mode = {
        'radio_move': 'Move when in other list',
        'radio_copy': 'Copy when in other list',
        'radio_download': 'Download again'
    }

    # create progress bars and their labels
    progresses = [(sg.Text(f'ProgBar {key}: None',
                           key=f'-{key}_text',
                           visible=False),
                   sg.ProgressBar(100,
                                  key=f'-{key}_progressbar',
                                  visible=False)) for key in range(1, 51)]
    # make layout
    layout = [[
        sg.Text('Username: '******'', key='username_input', enable_events=True),
        sg.Button('Check', key='username_button')
    ],
              [
                  sg.Text('Anime Music Dir: '),
                  sg.Input(ml.library_dir,
                           key='dir_input',
                           disabled=True,
                           enable_events=True),
                  sg.FolderBrowse(initial_folder=ml.get_default_dir(),
                                  key='dir_browse')
              ],
              [
                  sg.Radio(dupli_mode[key],
                           group_id='dupli',
                           key=key,
                           enable_events=True)
                  for i, key in enumerate(dupli_mode)
              ],
              [
                  sg.Text('Thread count: '),
                  sg.Combo(list(range(1, 51)),
                           default_value=1,
                           key='thread_count_combo',
                           enable_events=True)
              ],
              [
                  sg.Column(progresses,
                            scrollable=True,
                            key='progresses_column',
                            size=(700, 200))
              ], [sg.Button('Download', key='download_button')],
              [sg.Button('', visible=False, key='--PROGRESS_UPDATE--')]]

    to_disable = [
        'download_button', 'username_input', 'username_button', 'dir_input',
        'dir_browse', 'radio_move', 'radio_copy', 'radio_download'
    ]

    # make window
    window = sg.Window("MalMuzic", layout, finalize=True, resizable=False)

    # for x in range(50):
    #     progresses[x][1].UpdateBar(50)

    # set default values to UI
    layout[2][0].update(value=True)

    # set more variables
    input_default_color = sg.LOOK_AND_FEEL_TABLE[theme_name]['INPUT']
    run_thread_running = False
    run_thread: Tuple[Event, Thread] = None  # type: ignore
    to_close = False

    # helper function for main
    def check_username():
        print(f'[I] Looking for mal user "{values["username_input"]}"')
        exists = mm.user_exists(values["username_input"])
        print('[I] Username exists'
              if exists else '[I] Username doesn\'t exists')
        if not exists:
            window['username_input'].update(background_color='#FF7777')
        else:
            window['username_input'].update(
                background_color=input_default_color)
        return exists

    def get_dupli_mode():
        for i, key in enumerate(dupli_mode):
            if window[key].get():
                return i

    # UI loop
    while not to_close:
        event, values = window.read()  # type: ignore
        if event == sg.WIN_CLOSED or event is None:
            to_close = True
            if run_thread is not None:
                run_thread[0].set()
            continue
        # print('[I]', event, values[event] if event in values else '')
        if event == 'username_button':
            check_username()
        if event == 'download_button':
            if not run_thread_running:
                print('[I] Checking username')
                if not check_username():
                    continue

                ml.library_dir = values['dir_input']

                window['download_button'](
                    text=window['download_button'].ButtonText + ' Disabled')
                for dis in to_disable:
                    window[dis](disabled=True)

                run_thread = run(window,
                                 values["username_input"],
                                 progresses,
                                 window['progresses_column'],
                                 dir=ml.library_dir,
                                 thread_count=values['thread_count_combo'])
            else:
                cprint('[E] Download already running', 'red')

        if event == 'thread_count_combo':
            print(f'[I] User choose {values[event]} threads to run async')
        if event in dupli_mode:
            print(f'[I] User choose: "{dupli_mode[event]}"')
        if event == '--PROGRESS_UPDATE--':
            # progresses[values[event][0]][1].UpdateBar(values[event][2])
            for i in range(len(st.threads)):
                if st.threads[i] is not None:
                    if hasattr(st.threads[i][1], 'percent'):
                        progresses[i][1].UpdateBar(st.threads[i][1].percent)
                        progresses[i][0].update(
                            value=st.threads[i][1].request + ': ' +
                            str(st.threads[i][1].total_kb) + 'kB, ' +
                            str(round(st.threads[i][1].rate, 1)) + 'kB/s')

    if run_thread is not None:
        print('[I] Download thread still running, joining with it.')
        run_thread[1].join()

    window.close()
    print('[!] Exiting program')
Esempio n. 12
0
    [
        sg.Text('ListBox', size=(200, 35)),
        sg.Listbox(['Listbox 1', 'Listbox 2', 'Listbox 3'], size=(200, 85))
    ],
    [
        sg.Text('ComboBox / Dropdown', size=(200, 25)),
        sg.Combo([
            'Combo item 1',
        ], size=(200, 35))
    ], [sg.Text('Spinner', size=(200, 35)),
        sg.Spin([1, 2, 3], size=(40, 30))],
    [
        sg.Text('Checkbox', size=(200, 35)),
        sg.Checkbox('Checkbox', change_submits=True)
    ], [sg.Text('RadioButton', size=(200, 35)),
        sg.Radio('Radio Button', 1)],
    [sg.Text('Slider', size=(200, 35)),
     sg.Slider(orientation='h')],
    [sg.Text('Button', size=(200, 35)),
     sg.Button('Button')],
    [sg.Text('Table', size=(200, 35)),
     sg.Table([[0, 1, 3, 4]])],
    [
        sg.Text('Frame', size=(200, 35)),
        sg.Frame('Frame', [[sg.T('')], [sg.T('')]])
    ], [sg.Text('Stdout Output', size=(200, 35)),
        sg.Output(size=(200, 75))],
    [sg.Text('Dial', size=(200, 35)),
     sg.Dial(size=(150, 75)),
     sg.Stretch()], [sg.Button('Blank'), sg.Button('Exit')]
]
from processors import encode_to_utf8
from processors import standardize_characters
from processors import remove_pdf_metadata

# Set the 'print' command to use the GUI.
print = sg.Print

# Define the GUI.
sg.ChangeLookAndFeel('TealMono')
layout = [
    [sg.Text('Select folder to process:', size=(22, 1)),
        sg.InputText("", key='source'), sg.FolderBrowse(size=(9, 1))],
    [sg.Text('Save files to:', size=(25, 1)),
        sg.InputText("", key='destination'), sg.FolderBrowse(size=(9, 1))],
    [sg.Text('Choose processor:', size=(20, 1))],
    [sg.Radio("Convert to plaintext (supports .docx, .html, .pdf, .pptx, .rtf)",
              "Processors", key='convertToPlaintext', default=True)],
    [sg.Radio("Encode in UTF-8 (expects .txt files)",
              "Processors", key='encodeUtf8', default=False)],
    [sg.Radio("Standardize non-ASCII characters and remove non-English characters (expects UTF-8 encoded input)",
              "Processors", key='standardizeCharacters', default=False)],
    [sg.Radio("Remove PDF metadata (i.e., authoring information). Expects .pdf files.",
              "Processors", key='removeMetadata', default=False)],
    [sg.Button("Process files", size=(20, 1)), sg.Exit(size=(6, 1))],
    [sg.ProgressBar(max_value=10, orientation='h', size=(80, 20), key='progress')],
    [sg.Text('', size=(80, 1), key='result_text')],
    [sg.Text('', size=(80, 1), key='progress_text')],
]
window = sg.Window('Corpus Text Processor', keep_on_top=False, font=("Helvetica", 14), default_element_size=(50, 1)).Layout(layout)
progress_bar = window['progress']
progress_text = window['progress_text']
result_text = window['result_text']
Esempio n. 14
0
        prob = 0
        for i in range(k, n + 1):
            prob += binomial(n, p, i)
    return prob


r_keys = ['=', '<', '<=', '>', '>=']
sg.change_look_and_feel('DarkBlue1')  #colour
layout = [[sg.Text('| -N- | Sample space:'),
           sg.InputText(key='-N-')],
          [sg.Text('| -P- | Success rate: '),
           sg.InputText(key='-P-')],
          [sg.Text('| -K- | Number of successes:'),
           sg.InputText(key='-K-')], [sg.Text('Choose an operation: ')],
          [
              sg.Radio('=', 1, key=r_keys[0], default=True),
              sg.Radio('<', 1, key=r_keys[1]),
              sg.Radio('<=', 1, key=r_keys[2]),
              sg.Radio('>', 1, key=r_keys[3]),
              sg.Radio('>=', 1, key=r_keys[4])
          ], [sg.Button('Calculate'),
              sg.Button('Clear'),
              sg.Button('Exit')], [sg.Output(size=(30, 10), key='_output_')]]
window = sg.Window('Binomial Calculator', layout)  #makes window

while True:
    event, values = window.read()

    n = values['-N-']
    p = values['-P-']
    k = values['-K-']
Esempio n. 15
0
        continue
    else:
        break

columnTop = [[sg.Text('Tracker Interface - Case Search')],
             [
                 sg.Text('Year: '),
                 sg.Spin([i for i in range(2000, 2100)],
                         initial_value=datetime.date.today().year)
             ], [sg.Text('Case Number: '),
                 sg.InputText()]]

jobMakerLayout = [[sg.Column(columnTop)], [sg.Text('_' * 100)],
                  [sg.Text('Case Options:')],
                  [
                      sg.Radio('Display Case', "RADIO1", default=True),
                      sg.Radio('CC-JT Letter Creator', "RADIO1"),
                      sg.Radio('CC Letter Creator', "RADIO1")
                  ],
                  [
                      sg.Radio('Evidence Request Creator', "RADIO1"),
                      sg.Radio('Case Status/Change of Plea Updater', "RADIO1"),
                      sg.Radio('Guilty Plea Disposition Creator', "RADIO1")
                  ],
                  [
                      sg.Column(submitButton),
                      sg.Button(button_text="Add victim services?",
                                button_color=('#FFFFFF', '#7766E8'),
                                visible=False,
                                key='VSERV'),
                      sg.Column(cancelButton)