def create_note(name, config):
    g.SetOptions(background_color=config.background_color, text_color=config.text_color,
                 input_elements_background_color=config.background_color, input_text_color=config.text_color,
                 button_color=(config.text_color, config.background_color), border_width=config.border_width, font=('Arial', int(config.font_size)))
    layout = [
        [g.T('Create Note', font=('Arial', int(config.title_size)), justification='center')],
        [g.Multiline('', size=(50, 5), key='content')],
        [g.B('Close'), g.B('Save')]
    ]
    window = g.Window('Create', no_titlebar=NTB, keep_on_top=True, grab_anywhere=True, layout=layout, alpha_channel=float(config.alpha))
    while True:
        event, value = window.Read()
        if event == 'Close':
            window.Close()
            break
        elif event == 'Save':
            with open(NOTES_PATH, 'r+') as notes:
                note_obj = json.load(notes)
                note_obj.update({
                    name: value['content']
                })
                notes.seek(0)
                notes.truncate()
                json.dump(note_obj, notes, indent=4)
            window.Close()
            break
Beispiel #2
0
 def first_menu(self):
     layout = [
         [g.T('Charlatano GUI Settings v1.1', font=('Arial', 15))],
         [g.T('Made by Max Bridgland', font=('Arial', 10))]
     ]
     count = 0
     col1 = []
     col2 = []
     for k, v in self.parser.current_settings.items():
         title = str(k[0].upper() + k[1:].lower().replace('_', ' '))
         if (count % 2) == 0:
             col1.append([
                 g.B(' ' + title + ' ', key=k)
             ])
             count += 1
         else:
             col2.append([
                 g.B(' ' + title + ' ', key=k)
             ])
             count += 1
     layout.append([
         g.Column(col1), g.Column(col2)
     ])
     layout.append([
         g.Button('Close'), g.Button('Restart Charlatano', key='__RESTART__'), g.Button('Start Charlatano', key='__START__')
     ])
     window = g.Window('Charlatano GUI Settings', no_titlebar=True, grab_anywhere=True, keep_on_top=True, layout=layout)
     charla = Runner()
     while True:
         event, values = window.Read()
         print(event)
         if event == 'Close':
             window.Close()
             exit()
         elif event == '__START__':
             if charla.running and charla.proc:
                 charla.killCharlatano()
                 window.FindElement('__START__').Update('Start Charlatano')
             else:
                 charla.runCharlatano()
                 window.FindElement('__START__').Update('Stop Charlatano')
         elif event == '__RESTART__':
             charla.restartCharlatano()
             if charla.running:
                 window.FindElement('__START__').Update('Stop Charlatano')
         else:
             window.Close()
             self.settings_gui(event)
Beispiel #3
0
    def settings_gui(self, setting):
        layout = [
            [g.T(setting[0].upper() + setting[1:], font=('Arial', 15))]
        ]
        count = 0
        col1 = []
        col2 = []
        col3 = []
        col4 = []
        for k, v in self.parser.current_settings[setting].items():
            if count == 0:
                col1.append([
                    g.T(str(k[0].upper() + k[1:].lower().replace('_', ' '))), g.Input(str(v.replace('\n', '')), key=k)
                ])
                count += 1
            elif count == 1:
                col2.append([
                    g.T(str(k[0].upper() + k[1:].lower().replace('_', ' '))), g.Input(str(v.replace('\n', '')), key=k)
                ])
                count += 1
            elif count == 2:
                col3.append([
                    g.T(str(k[0].upper() + k[1:].lower().replace('_', ' '))), g.Input(str(v.replace('\n', '')), key=k)
                ])
                count = 0
        layout.append([
            g.Column(col1), g.Column(col2), g.Column(col3)
        ])
        layout.append([
            g.Button('Back'), g.B('Save')
        ])
        window = g.Window(setting[0].upper() + setting[1:], no_titlebar=True, grab_anywhere=True, keep_on_top=True, layout=layout)
        while True:
            event, values = window.Read()
            if event == 'Back':
                window.Close()
                self.first_menu()
            if event == 'Save':
                self.parser.update_settings(setting, values)

# runCharlatano()
Beispiel #4
0
def rename_dialog(src: str):
    import PySimpleGUIQt as G
    ske = PySimpleGUISpecialKeyEvent()
    conf_file = real_join_path('~', '.config/rename_dialog.json')
    root = 'root'
    fname = 'fname'
    ext = 'ext'
    key_new_root = 'key_new_root'
    key_new_base = 'key_new_base'
    ok = 'OK'
    cancel = 'Cancel'
    pattern = 'pattern'
    replace = 'replace'
    substitute = 'substitute'
    save_replace = 'save_replace'
    save_pattern = 'save_pattern'
    add_root = 'add_root'
    rename_info_file = 'rename_info_file'
    bytes_count = 'bytes_count'
    title = 'Rename - {}'.format(src)
    h = None

    conf = read_json_file(conf_file, default={pattern: [''], replace: ['']})
    tmp_pl = conf[pattern] or ['']
    tmp_rl = conf[replace] or ['']
    old_root, old_base = os.path.split(src)
    old_fn, old_ext = os.path.splitext(old_base)
    info_file_base = [
        f for f in os.listdir(old_root) if f.endswith('.info') and (
            f.startswith(old_fn) or old_fn.startswith(f.rstrip('.info')))
    ]
    has_info = True if info_file_base else False

    @deco_factory_retry(Exception, 0, enable_default=True, default=None)
    def re_sub():
        return re.sub(data[pattern], data[replace], data[fname] + data[ext])

    def count_name_bytes(name: str):
        d = {}
        try:
            c, b = encode_default_locale(name)
            d[c] = len(b)
        except UnicodeEncodeError:
            pass
        u8 = 'utf-8'
        if u8 not in d:
            try:
                c, b = encode_default_locale(name, u8)
                d[c] = len(b)
            except UnicodeEncodeError:
                pass
        return f'Basename Length: {len(name)}, {", ".join([f"{k.upper()} {v} bytes" for k, v in d.items()])}'

    # sg.theme('SystemDefaultForReal')
    layout = [[G.T(src, key='src')], [G.HorizontalSeparator()],
              [
                  G.I(old_fn, key=fname, focus=True),
                  G.I(old_ext, key=ext, size=(42, h))
              ],
              [
                  G.I(old_root, key=root),
                  G.B('+', key=add_root, size=(20, h)),
                  G.FolderBrowse('...',
                                 target=root,
                                 initial_folder=old_root,
                                 size=(20, h))
              ], [G.HorizontalSeparator()],
              [G.T('Regular Expression Pattern & Replacement')],
              [
                  G.T(size=(0, h)),
                  G.Drop(tmp_pl,
                         key=pattern,
                         enable_events=True,
                         text_color='blue'),
                  G.CB('',
                       default=True,
                       key=save_pattern,
                       enable_events=True,
                       size=(15, h)),
                  G.Drop(tmp_rl,
                         key=replace,
                         enable_events=True,
                         text_color='blue'),
                  G.CB('',
                       default=True,
                       key=save_replace,
                       enable_events=True,
                       size=(15, h)),
                  G.B('Go', key=substitute, size=(25, h))
              ], [G.HorizontalSeparator()], [G.I(old_root, key=key_new_root)],
              [G.I(old_base, key=key_new_base)],
              [
                  G.Submit(ok, size=(10, 1)),
                  G.Stretch(),
                  G.T(count_name_bytes(old_base), key=bytes_count),
                  G.Stretch(),
                  G.Cancel(cancel, size=(10, 1))
              ]]
    if has_info:
        info_file_base = info_file_base[0]
        info_filepath = os.path.join(old_root, info_file_base)
        with open(info_filepath, encoding='utf8') as f:
            info = f.read()
        layout.insert(2, [
            G.CB(info_file_base,
                 default=True,
                 key=rename_info_file,
                 enable_events=True)
        ])
        layout.insert(2, [G.ML(info, key='ML')])
        layout.insert(4, [G.HorizontalSeparator()])

    ensure_sigint_signal()
    window = G.Window(title,
                      layout,
                      return_keyboard_events=True,
                      finalize=True,
                      font='arial 10',
                      element_padding=(1, 1))
    window.bring_to_front()
    ml = window.find_element('ML', silent_on_error=True)
    if ml:
        ml.update(readonly=True)

    loop = True
    data = {
        fname: old_fn,
        ext: old_ext,
        pattern: tmp_pl[0],
        replace: tmp_rl[0],
        root: old_root,
        key_new_root: '',
        key_new_base: ''
    }

    while loop:
        dst_from_data = os.path.join(data[key_new_root], data[key_new_base])
        try:
            tmp_fname = re_sub() or data[fname] + data[ext]
            dst = os.path.realpath(os.path.join(data[root], tmp_fname))
        except TypeError:
            dst = src
        if dst != dst_from_data:
            nr, nb = os.path.split(dst)
            window[key_new_root].update(nr)
            window[key_new_base].update(nb)
            window[bytes_count].update(count_name_bytes(nb))

        event, data = window.read()
        for k in (root, fname, ext, key_new_root, key_new_base):
            window[k].update(text_color=None)
        cur_p = data[pattern]
        cur_r = data[replace]

        if event == ske.esc:
            loop = False
        elif event == add_root:
            os.makedirs(data[root], exist_ok=True)
        elif event == substitute:
            data[fname], data[ext] = os.path.splitext(
                re_sub() or data[fname] + data[ext])
            window[fname].update(data[fname])
            window[ext].update(data[ext])
        elif event == save_pattern:
            if data[save_pattern]:
                conf[pattern].insert(0, cur_p)
                conf[pattern] = dedup_list(conf[pattern])
            else:
                conf[pattern] = remove_from_list(conf[pattern], [cur_p])
        elif event == save_replace:
            if data[save_replace]:
                conf[replace].insert(0, cur_r)
                conf[replace] = dedup_list(conf[replace])
            else:
                conf[replace] = remove_from_list(conf[replace], [cur_r])
        elif event == pattern:
            window[save_pattern].update(value=cur_p in conf[pattern])
        elif event == replace:
            window[save_replace].update(value=cur_r in conf[replace])
        elif event == ok:
            try:
                shutil.move(src, dst)
                if has_info:
                    if data[rename_info_file]:
                        shutil.move(info_filepath,
                                    os.path.splitext(dst)[0] + '.info')
                loop = False
            except FileNotFoundError:
                for k in (root, fname, ext):
                    window[k].update(text_color='red')
            except FileExistsError:
                for k in (key_new_root, key_new_base):
                    window[k].update(text_color='red')
            except OSError as e:
                G.PopupError(str(e))
        elif event in (None, cancel):
            loop = False
        else:
            ...
    else:
        write_json_file(conf_file, conf, indent=0)

    window.close()
Beispiel #5
0
              sg.T(' PASSWORD:'******'text_pass'),
              sg.I(key='pass', size=(10, 0.9), disabled=True),
              sg.T(""),
              sg.T(""),
              sg.T(""),
              sg.T(""),
              sg.T("")
          ],
          [
              sg.T(" FOLDER:    "),
              sg.I(key="pasta", size=(46, 0.9)),
              sg.FolderBrowse("BROWSE", size=(10, 0.95))
          ],
          [
              sg.T(size=(20, 1)),
              sg.B("RUN", size=(8, 0.9)),
              sg.B("STOP", disabled=True, size=(8, 0.9)),
              sg.B("EXIT", size=(8, 0.9))
          ], [sg.Output(background_color="Black", text_color="White")]]

window = sg.Window('File Sharing System', resizable=False,
                   size=(600, 300)).layout(Layout)


def terminate_thread(thread):
    if not thread.is_alive():
        return

    exc = ctypes.py_object(SystemExit)
    res = ctypes.pythonapi.PyThreadState_SetAsyncExc(
        ctypes.c_long(thread.ident), exc)
Beispiel #6
0
from pprint import pprint
import requests
import lxml
import PySimpleGUIQt as sg

sg.theme('Reddit')
headings = [
    'Nome', 'Seeders', 'Leechers', 'Data', 'Tamanho', 'Usuário', 'Download'
]
l = ['', '', '', '', '', '', '']
Values = [l for a in range(20)]

Layout = [[
    sg.T("Procurar:"),
    sg.I(key='keywords'),
    sg.B("PROCURAR", key='PROCURAR', size=(10, 1))
], [sg.Listbox(l, enable_events=True, key='tabela')]]
#   [sg.Table(Values, headings=headings, key='tabela', auto_size_columns=True, enable_events=True)]]

Window = sg.Window("1337x.to Searcher",
                   layout=Layout,
                   size=(1200, 695),
                   font="SEGOEUI 11")

while True:
    event, values = Window.read()
    print(event, values)
    if event is None or event == 'sair':
        break
    if event == 'PROCURAR':
        KEYWORD = Window['keywords'].Get()
Beispiel #7
0
import PySimpleGUIQt as sg
import imwatchingyou
"""
    Combining the imwatchingyou debugger package with PySimpleGUIQt
    This enables you to have a live debugger / REPL in a running PySimpleGUIQt program
"""
layout = [[sg.Text('My PySimpleGUIQt layout')],
          [sg.B('OK'), sg.B('Debugger'),
           sg.B('Popout')]]

window = sg.Window('My window', layout)

counter = 0  # something to see updating in the popout window
while True:
    event, values = window.read(timeout=100)
    if event is None:
        break
    if event == 'Debugger':
        imwatchingyou.show_debugger_window()
    elif event == 'Popout':
        imwatchingyou.show_debugger_popout_window()
    imwatchingyou.refresh_debugger()
    counter += 1
import PySimpleGUIQt as sg
import imwatchingyou
"""
    Combining the imwatchingyou debugger package with PySimpleGUIQt
    This enables you to have a live debugger / REPL in a running PySimpleGUIQt program
"""
layout = [[sg.Text('My PySimpleGUIQt layout')],
          [sg.Button('OK'),
           sg.Button('Debugger'),
           sg.B('Popout')]]

window = sg.Window('My window', layout)

counter = 0  # something to see updating in the popout window
while True:
    event, values = window.Read(timeout=100)
    if event is None:
        break
    if event == 'Debugger':
        imwatchingyou.show_debugger_window()
    elif event == 'Popout':
        imwatchingyou.show_debugger_popout_window()
    imwatchingyou.refresh_debugger()
    counter += 1
Beispiel #9
0
import PySimpleGUIQt as sg
import pandas as pd
import sweetviz as sv
from datetime import datetime

sg.theme('dark teal 9')

# sg.theme_previewer()
# Black, DarkTeal9, DarkBlue2, DarkGrey6

ftypes = (('Excel', '*.xls'), ('Excel', '*.xlsx'))

layout = [
    [sg.I('Select File', key='-FILE-'), sg.FileBrowse('Browse', file_types=ftypes)],
    [sg.B('OK', bind_return_key=True), sg.B('Cancel')],
]

window = sg.Window('ml4all', layout, font='Any 14', element_padding=(5, 5))


def on_ok():
    print(values['-FILE-'])
    df = pd.read_excel(values['-FILE-'])

    c = df.select_dtypes(include=['object']).columns
    df[c] = df[c].fillna('NA').apply(str)
    # i = df.select_dtypes(include=['int']).columns
    # df[i] = df[i].fillna(0).apply(int)
    # f = df.select_dtypes(include=['float'])
    # df[f] = df[f].fillna(0.0).apply(float)
    # d = df.select_dtypes(include=['datetime'])
Beispiel #10
0
          key='Ext',
          tooltip='Local onde as pastas contendo os documentos estão.'),
     sg.T("(sem ponto, Ex: pdf)"),
     sg.Stretch()
 ],
 [
     sg.T("SAÍDA:",
          tooltip='Local onde os documentos serão copiados.',
          size=(10, 1)),
     sg.I(size=(92, 1),
          key='Saida',
          tooltip='Local onde as pastas contendo os documentos estão.'),
     sg.FolderBrowse("PASTA", size=(8, 1), tooltip='Procurar pasta.'),
     sg.Stretch()
 ],
 [sg.B('EXECUTAR', tooltip='Executar análise.', key='exec', size=(10, 1))],
 [
     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."),
Beispiel #11
0
sg.theme('Reddit')

Layout = [[sg.T("Tecla para iniciar:"),
           sg.I(key='in', size=(20, 1))],
          [sg.T("Tecla acionada:"),
           sg.I(key='do', size=(20, 1))],
          [sg.T("Tecla para parar:"),
           sg.I(key='out', size=(20, 1))],
          [
              sg.T("Intervalo:"),
              sg.I(default_text='0.1', key='tim', size=(20, 1))
          ],
          [
              sg.T("Status:"),
              sg.Stretch(),
              sg.B("Executar", key='exec', size=(10, 1))
          ], [sg.Multiline(autoscroll=True, key='multi', disabled=True)]]

Window = sg.Window("AutoClicker", layout=Layout, font="SEGOEUI 11")

while True:
    event, values = Window.read(timeout=1000)
    if event is None:
        break
    if event == 'exec':
        START = Window['in'].Get()
        END = Window['out'].Get()
        DO = Window['do'].Get()
        TIME = float(Window['tim'].Get().replace(",", '.'))
        if (START == '' or START == ' ' or START is None) or (
                END == '' or END == ' '
Beispiel #12
0
def rename_dialog(src: str):
    import PySimpleGUIQt as sg
    ske = PySimpleGUISpecialKeyEvent()
    conf_file = real_join_path('~', '.config/rename_dialog.json')
    root = 'root'
    fname = 'fname'
    ext = 'ext'
    new_root = 'new_root'
    new_base = 'new_base'
    ok = 'OK'
    cancel = 'Cancel'
    pattern = 'pattern'
    replace = 'replace'
    substitute = 'substitute'
    save_replace = 'save_replace'
    save_pattern = 'save_pattern'
    add_root = 'add_root'
    title = 'Rename - {}'.format(src)
    h = .7

    conf = read_json_file(conf_file, default={pattern: [''], replace: ['']})
    tmp_pl = conf[pattern] or ['']
    tmp_rl = conf[replace] or ['']
    old_root, old_base = os.path.split(src)
    old_fn, old_ext = os.path.splitext(old_base)

    # sg.theme('SystemDefaultForReal')
    layout = [
        [sg.T(src, key='src')],
        [sg.HorizontalSeparator()],
        [sg.I(old_root, key=root),
         sg.B('+', key=add_root, size=(3, h)),
         sg.FolderBrowse('...', target=root, initial_folder=old_root, size=(6, h))],
        [sg.I(old_fn, key=fname, focus=True),
         sg.I(old_ext, key=ext, size=(6, h))],
        [sg.HorizontalSeparator()],
        [sg.T('Regular Expression Substitution Pattern & Replacement')],
        [sg.T(size=(0, h)),
         sg.Drop(tmp_pl, key=pattern, enable_events=True, text_color='blue'),
         sg.CB('', default=True, key=save_pattern, enable_events=True, size=(2, h)),
         sg.Drop(tmp_rl, key=replace, enable_events=True, text_color='blue'),
         sg.CB('', default=True, key=save_replace, enable_events=True, size=(2, h)),
         sg.B('Go', key=substitute, size=(3, h))],
        [sg.HorizontalSeparator()],
        [sg.I(old_root, key=new_root)],
        [sg.I(old_fn + old_ext, key=new_base)],
        [sg.Submit(ok, size=(10, 1)),
         sg.Stretch(),
         sg.Cancel(cancel, size=(10, 1))]]

    ensure_sigint_signal()
    window = sg.Window(title, return_keyboard_events=True).layout(layout).finalize()
    window.bring_to_front()

    loop = True
    data = {fname: old_fn, ext: old_ext, pattern: tmp_pl[0], replace: tmp_rl[0], root: old_root,
            new_root: '', new_base: ''}

    @decorator_factory_exception_retry(Exception, 0, enable_default=True, default=None)
    def re_sub():
        return re.sub(data[pattern], data[replace], data[fname] + data[ext])

    while loop:
        dst_from_data = os.path.join(data[new_root], data[new_base])
        try:
            tmp_fname = re_sub() or data[fname] + data[ext]
            dst = os.path.realpath(os.path.join(data[root], tmp_fname))
        except TypeError:
            dst = src
        if dst != dst_from_data:
            nr, nb = os.path.split(dst)
            window[new_root].update(nr)
            window[new_base].update(nb)

        event, data = window.read()
        f = window.find_element_with_focus()
        for k in (root, fname, ext, new_root, new_base):
            window[k].update(text_color=None)
        cur_p = data[pattern]
        cur_r = data[replace]

        if event == ske.esc:
            loop = False
        elif event == add_root:
            os.makedirs(data[root], exist_ok=True)
        elif event == substitute:
            data[fname], data[ext] = os.path.splitext(re_sub() or data[fname] + data[ext])
            window[fname].update(data[fname])
            window[ext].update(data[ext])
        elif event == save_pattern:
            if data[save_pattern]:
                conf[pattern].insert(0, cur_p)
                conf[pattern] = dedup_list(conf[pattern])
            else:
                conf[pattern] = remove_from_list(conf[pattern], [cur_p])
        elif event == save_replace:
            if data[save_replace]:
                conf[replace].insert(0, cur_r)
                conf[replace] = dedup_list(conf[replace])
            else:
                conf[replace] = remove_from_list(conf[replace], [cur_r])
        elif event == pattern:
            window[save_pattern].update(value=cur_p in conf[pattern])
        elif event == replace:
            window[save_replace].update(value=cur_r in conf[replace])
        elif event == ok:
            try:
                shutil.move(src, dst)
                loop = False
            except FileNotFoundError:
                for k in (root, fname, ext):
                    window[k].update(text_color='red')
            except FileExistsError:
                for k in (new_root, new_base):
                    window[k].update(text_color='red')
            except OSError as e:
                sg.PopupError(str(e))
        elif event in (None, cancel):
            loop = False
        else:
            ...
    else:
        write_json_file(conf_file, conf, indent=0)

    window.close()
def open_note(name, config):
    g.SetOptions(background_color=config.background_color,
                 text_color=config.text_color,
                 input_elements_background_color=config.background_color,
                 input_text_color=config.text_color,
                 button_color=(config.text_color, config.background_color),
                 border_width=config.border_width,
                 font=('Arial', int(config.font_size)))
    with open(NOTES_PATH, 'r+') as notes:
        note_obj = json.load(notes)
        match = False
        content = ''
    for k, v in note_obj.items():
        if name == k:
            match = True
            content = v
    if match == False:
        print('No Note Found With That Name')
        exit(1)
    layout = [[
        g.T(name,
            font=('Arial', int(config.title_size)),
            justification='center')
    ], [g.Multiline(content, size=(50, 5), key='content')],
              [g.B('Close'), g.B('Delete'),
               g.B('Save')]]

    window = g.Window('Create',
                      no_titlebar=NTB,
                      keep_on_top=True,
                      grab_anywhere=True,
                      layout=layout,
                      alpha_channel=float(config.alpha))

    while True:
        event, value = window.Read()
        if event == 'Close':
            window.Close()
            break
        elif event == 'Save':
            note_obj[name] = value['content']
            with open(NOTES_PATH, 'r+') as notes:
                notes.seek(0)
                notes.truncate()
                json.dump(note_obj, notes, indent=4)
            window.Close()
            break
        elif event == 'Delete':
            new_layout = [[
                g.T('Are you sure you want to delete {}?'.format(name),
                    justification='center')
            ], [g.B('No'), g.B('Yes')]]
            confirm_window = g.Window('',
                                      no_titlebar=NTB,
                                      keep_on_top=True,
                                      grab_anywhere=True,
                                      layout=new_layout)
            while True:
                event1, value1 = confirm_window.Read()
                if event1 == 'Yes':
                    note_obj.pop(name, [])
                    with open(NOTES_PATH, 'r+') as notes:
                        notes.seek(0)
                        notes.truncate()
                        json.dump(note_obj, notes, indent=4)
                    confirm_window.Close()
                    break
                else:
                    confirm_window.Close()
                    break
            window.Close()
            break
Beispiel #14
0
import os
from http.server import HTTPServer, CGIHTTPRequestHandler
import socket
import PySimpleGUIQt as sg
from concurrent.futures import ThreadPoolExecutor
from  threading import enumerate
import ctypes
import webbrowser

sg.theme("Reddit")
sg.SetOptions(button_color=("000000", "000000"), button_element_size=(8, 0.9), auto_size_buttons=True, auto_size_text=True)

Layout = [[sg.T("ONLINE FILE SHARING SYSTEM", font="Arial 12 bold", justification="center")],
          [sg.T()],
          [sg.T("FOLDER:", size=(7, 1), justification="center"), sg.I(key="pasta", size=(46, 0.9)), sg.FolderBrowse("BROWSE", size=(10, 0.95))],
          [sg.T(size=(20,1)), sg.B("RUN", size=(8, 0.9)), sg.B("STOP", disabled=True, size=(8, 0.9)), sg.B("EXIT", size=(8, 0.9))],
          [sg.Output(background_color="Black", text_color="White")]]

window = sg.Window('File Sharing System', resizable=False, size=(600, 300)).layout(Layout)

def terminate_thread(thread):
    if not thread.isAlive():
        return

    exc = ctypes.py_object(SystemExit)
    res = ctypes.pythonapi.PyThreadState_SetAsyncExc(
        ctypes.c_long(thread.ident), exc)
    if res == 0:
        raise ValueError("nonexistent thread id")
    elif res > 1:
        ctypes.pythonapi.PyThreadState_SetAsyncExc(thread.ident, None)
Beispiel #15
0
        return f'{self.num} {self.psg_object}'

    @staticmethod
    def headers():
        return 'num,psg_object'.split(',')


items = [
    ParsingError(dicta1, 45),
    ParsingError(dicta2, 42),
    ParsingError(dicta3, 12),
]

window = sg.Window('Test', [
    [sg.Listbox(items, key='qwe', enable_events=True)],
    [sg.B('q1'), sg.B('q2'), sg.B('q3')],
],
                   return_keyboard_events=True)

while True:
    event, values = window()
    if event in ('Exit', None): break

    print(event, values)

    if event == 'q1':
        gui = values['qwe'][0]
        print(gui.num)
        print(gui.psg_object[4])

window.close()
Beispiel #16
0
    """ Get absolute path to resource, works for dev and for PyInstaller """
    base_path = getattr(sys, '_MEIPASS', os.path.dirname(os.path.abspath(__file__)))
    return os.path.join(base_path, relative_path)


prototext = resource_path("colorization_deploy_v2.prototxt")
caffemodel = resource_path("colorization_release_v2.caffemodel")
npyfile = resource_path("pts_in_hull.npy")


sg.ChangeLookAndFeel('Reddit')
sg.set_options(button_color=("0079d3", "0079d3"), button_element_size=(10, 1), text_justification="center")

col1 = [[sg.T("IMAGEM:", size=(44, 1)), sg.I(size=(0, 0), visible=False, key="img", enable_events=True), sg.FileBrowse("SELECIONAR", file_types=(("Imagem", "*.png; *.jpg; *.jpeg"),), target="img")],
        [sg.Image(filename=resource_path("placeholder.png"), key="img_display")]]
col2 = [[sg.T('RESULTADO:', size=(44, 1)), sg.I(size=(0, 0), visible=False, key="savefile", enable_events=True), sg.B("COLORIR", key="processar")],
        [sg.Image(filename=resource_path("placeholder.png"), key="img_display2", )]]

tab1_layout = [[sg.Column(col1), sg.Column(col2)],
               [sg.Exit(key="EXIT"), sg.FileSaveAs("SALVAR", file_types=(("Imagem", "*.jpg"),), target='savefile', key="savefilebrowse", disabled=True, button_color=("black","grey"))]]

tab2_layout = [[sg.T('PASTA:'), sg.I(key="pasta", size=(98,1)), sg.FolderBrowse()],
               [sg.B("COLORIR")],
               [sg.Exit(key="Exit")]]

layout = [[sg.T("\t\t\t\t\tCOLORIZADOR DE FOTOS EM PRETO E BRANCO", font=("Arial 12 bold"))],
          [sg.TabGroup([[sg.Tab('COLORIR ARQUIVO ÚNICO', tab1_layout), sg.Tab('COLORIR LOTE', tab2_layout)]])]]

window = sg.Window('Monografia do vértice genérica', layout, size=(1000, 700), auto_size_text=True, auto_size_buttons=False, resizable=False)

FileIMG = None
Beispiel #17
0
import sys
import PySimpleGUIQt as sg
'''
'''
layout = [
    [sg.InputText()],
    [sg.Button('7'),sg.Button('8'),sg.Button('9'),sg.B('+')],
   [sg.Button('4'), sg.Button('5'), sg.Button('6'), sg.B('=')]
]
window = sg.Window('计算器', layout)

str=""
while True:
    event, values = window.read()
    if event in (None,'exit'):
        window.close()
        break
    if event == '=':
        print(eval(str))
        str = ""
    str = str+event
    print(str)