コード例 #1
0
ファイル: tab.py プロジェクト: faulander/TAB
def MicroBreak():
    # TODO: If pause is pressed, don't show microbreaks
    # layout the Window
    layout = [[sg.Text('A MicroBreak')],
            [sg.ProgressBar(5, orientation='h', size=(20, 20), key='progbar')]]

    # create the Window
    window = sg.Window('Custom Progress Meter', layout)
    start = time.time()
    elapsed = 0
    while elapsed < 5:
        event, values = window.Read(timeout=0)
        if event == 'Cancel' or event is None:
            break
        end = time.time()
        elapsed = end - start
        window.Element('progbar').UpdateBar(elapsed)
    window.Close()    
コード例 #2
0
ファイル: main.py プロジェクト: katustrica/zenit
    [
        sg.Frame('Список банков', [[
            sg.Listbox(values=[], select_mode=sg.LISTBOX_SELECT_MODE_MULTIPLE, key='-LISTBOX-')
            ]]
        )
    ],
    [sg.Button('Взять данные'), sg.Text(' ' * 79), sg.Button('Удалить')],
    [
        sg.Frame('Cохранение', [[
                sg.FolderBrowse('Выберете папку', target='-PATH-'),
                sg.InputText(f'{dirname(__file__)}', key='-PATH-'),
                sg.Button('Сохранить')
            ]]
        )
    ],
    [sg.ProgressBar(1000, orientation='h', key='progressbar')]
]

win1 = sg.Window('101 форма', layout1)
win2_active = False
banks_data, banks_name = {}, {}
dates = []
while True:
    try:
        ev1, val1 = win1.read(timeout=100)
        if ev1 in (None, 'Exit'):
            break
        elif ev1 == 'Взять данные':
            dates = []
            banks_data, banks_name = {}, {}
            t_smonth = temp_smonth
コード例 #3
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()
コード例 #4
0
ファイル: mal_muzic_gui.py プロジェクト: MineFuf/MalMuzic
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')
コード例 #5
0
    [
        sg.T("MENSAGENS:",
             size=(14, 1),
             tooltip='Mensagens provindas do processo executado.'),
        sg.Stretch(),
        sg.B("MODO DE USAR",
             key='usar',
             tooltip='Descrição do preenchimento de cada campo.',
             size=(15, 1))
    ], [sg.Output(key='out')],
    [
        sg.B("LIMPAR",
             key='limpar',
             size=(10, 1),
             tooltip="Limpa o texto da caixa de mensagens."),
        sg.ProgressBar(max_value=100, key="prog", orientation="h")
    ]
]

window = sg.Window("COPIADOR DE ARQUIVOS", size=(800, 480)).Layout(layout)


def func():
    files = glob(PASTA_PA + "\\**\\*.{0}".format(EXT), recursive=True)
    print("Iniciando cópia...\n")
    window.Refresh()
    totalfiles = len(files)
    nfiles = 0
    copiados = 0
    erros = 0
    for f in files:
コード例 #6
0
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']


def process_recursive(values):
    source = values['source']
    destination = values['destination']
    resultList = []
    supported_filetypes = ['.docx', '.pdf', '.html', '.pptx', '.txt', '.rtf', '.doc']
コード例 #7
0
                       background_color="transparent",
                       margins=(10, 50, 0, 0)),
               sg.Column(controls),
               sg.Column(sound, size=(20, 1))
           ],
           [
               sg.Text("0:00",
                       key="-start-",
                       font=font,
                       justification="c",
                       background_color="transparent",
                       size_px=(50, 15),
                       margins=(15, 0, 0, 0)),
               sg.ProgressBar(100,
                              size_px=(370, 5),
                              bar_color=("#535353", "#b3b3b3"),
                              start_value=0,
                              key="progress"),
               sg.Text("0:00",
                       key="-end-",
                       font=font,
                       justification="c",
                       background_color="transparent",
                       size_px=(40, 15))
           ]]

overlayW = sg.Window("",
                     overlay,
                     keep_on_top=True,
                     no_titlebar=True,
                     size=size,
コード例 #8
0
left_menu = sg.Column([
    [sg.Button('Home')],
    [sg.Button('Foo')],
    [sg.Button('Help')],
])

graph_col = [[sg.Graph((100, 100), (0, 0), (1, 1))],
             [sg.Graph((100, 100), (0, 0), (1, 1))]]

main_col = [[
    sg.MultilineOutput(
        'This is some text so see how the font looks that I am using.')
]]

main_pane = sg.Column([
    [sg.Text('Progress'), sg.ProgressBar(100)],
    [sg.Col(graph_col), sg.Col(main_col)],
    #    [sg.MultilineOutput()]
])

#layout = [[left_menu, main_pane]]
layout = [[main_pane]]

window = sg.Window('ml4all',
                   layout,
                   font='Helvetica 14',
                   element_padding=(5, 5))
# Calibre Roboto Helvetica, Verdana

while True:
    event, values = window.read()
コード例 #9
0
            key="startButton")
    ],
    [
        sg.Button(
            " Start Converting ",
            tooltip=
            "This will convert the images to text, it may take a minute depending on PC speed and number of decos",
            key="convertButton"),
        sg.Button(
            " Export (fix errors first!) ",
            tooltip="FIX ANY ERRORS BEFORE PRESSING THIS OR IT WONT WORK!!!!!",
            key="exportButton")
    ],
    [
        sg.Text("Progress:"),
        sg.ProgressBar(100, orientation="h", key="bar"),
        sg.Text("0/X", key="bartext")
    ], [sg.Output()], [sg.Button("Exit")]
]

window = sg.Window("MHW Deco Exporter", location=(800, 400))

window.Layout(layout).Finalize()

# the region caprture method, isnt used if defaultregion() is used instead


def capture():
    global x1, y1, drawing, num, img, img2, x2, y2

    x1, y1, x2, y2 = 0, 0, 0, 0
コード例 #10
0
        sg.Input("./data/chap28", key="folderPath", size=(50, 0.5)),
        sg.FolderBrowse(initial_folder=".",
                        key="browseFolder",
                        target="folderPath"),
        sg.Button("Analyze", key="analyze"),
    ],
    [
        sg.Text('Capture frequency (s): '),
        sg.Input(5, key="delayTime", size=(3, 1), justification='center'),
        sg.Button("Record", key="recordBtn"),
        sg.Text('Current capture index:'),
        sg.Text("0", key="imgIdx"),
    ],
    [
        sg.Text('Analyze progress', key='progressText'),
        sg.ProgressBar(100, key="progressbar", size=(5, 1))
    ],
]

window = sg.Window("pySlideCap",
                   use_native_style=True,
                   layout=layout,
                   element_padding=(10, 10))

record = False

imgIdx = 0
startTime = 0
imageBuffer = BytesIO()
timeout = None