예제 #1
0
 def init_components(self, equipments):
     sg.theme('DarkGrey5')
     layout = [[sg.Listbox(values=equipments, size=(60, 5))],
               [
                   sg.Btn('Criar Equipamento', key='createequipment'),
                   sg.Btn('Modificar', key='modifyequipment'),
                   sg.Btn('Excluir', key='deleteequipment')
               ]]
     self.__window = sg.Window('Equipment Screen',
                               layout=layout,
                               size=(500, 150),
                               finalize=True)
예제 #2
0
 def init_components(self, rents):
     sg.theme('DarkGrey5')
     layout = [[sg.Listbox(values=rents, size=(60, 5))],
               [
                   sg.Btn('Criar Aluguel', key='createrent'),
                   sg.Btn('Modificar', key='modifyrent'),
                   sg.Btn('Excluir', key='deleterent')
               ]]
     self.__window = sg.Window('Customer Screen',
                               layout=layout,
                               size=(500, 150),
                               finalize=True)
예제 #3
0
 def init_components(self):
     sg.theme('DarkGrey5')
     layout = [
         [sg.Text('Nome do equipamento:   ', size=(14, 1)),sg.Input(default_text="Digite o nome do equipamento", key='name',size=(30, 1))],
         [sg.Text('Quantidade total:', size=(14, 1)),sg.Input(default_text="Digite a quantidade total", key='total_quantity',size=(30, 1))],
         [sg.Text('Quantidade disponível:', size=(14, 1)),sg.Input(default_text="Digite a quantidade total", key='available_quantity',size=(30, 1))],
         [sg.Text('Preço semanal:', size=(14, 1)),sg.Input(default_text="Digite o preço do aluguel semanal", key='rental_price',size=(30, 1))],
         [sg.Btn('Criar Cliente')],
         [sg.Listbox(values=self.__equipments, size=(30,5))],
         [sg.Btn('Excluir'),sg.Btn('Modificar')],
         [sg.Btn('Voltar')]
     ]
     self.__window = sg.Window('Menu', layout=layout, size=(500,300), finalize=True)
예제 #4
0
def simple():
    layout = [[
        sg.Text('账号', font=("Helvetica", 25)),
        sg.Input(key='_USER_', font=("Helvetica", 25))
    ], [sg.Text('密码'), sg.Input(password_char='*', key='_PWD_')],
              [sg.Btn('提交', key='_LOGIN_')],
              [
                  sg.Output(size=(72, 6),
                            font=("微软雅黑", 10),
                            background_color='light gray')
              ]]

    # 创建窗口,引入布局,并进行初始化
    # 创建时,必须要有一个名称,这个名称会显示在窗口上
    window = sg.Window('登录',
                       layout=layout,
                       finalize=True,
                       default_button_element_size=(300, 5))

    while True:  # 创建一个事件循环,否则窗口运行一次就会被关闭
        event, value = window.Read(
        )  # event, value 的值分别是 _LOGIN_ {'_USER_': 'admin', '_PWD_': '123'}
        # print(event, value)  # 可以打印一下看看变量的内容
        if event is None:  # 如果事件的值为 None,表示点击了右上角的关闭按钮
            break
        if event == '_LOGIN_':  # 当获取到事件时,处理逻辑
            user = value['_USER_']
            password = value['_PWD_']
            if user == 'admin' and password == '123':
                sg.popup('登录成功!')
            else:
                sg.popup('登录失败!', text_color='red')

    window.close()
예제 #5
0
 def init_components(self):
     sg.theme('DarkGrey5')
     layout = [[
         sg.Text('Nome do equipamento:   ', size=(17, 1)),
         sg.Input(default_text="Digite o nome do equipamento",
                  key='name',
                  size=(30, 1))
     ],
               [
                   sg.Text('Quantidade total:', size=(17, 1)),
                   sg.Input(default_text="Digite a quantidade total",
                            key='total_quantity',
                            size=(30, 1))
               ],
               [
                   sg.Text('Quantidade disponível:', size=(17, 1)),
                   sg.Input(default_text="Digite a quantidade total",
                            key='available_quantity',
                            size=(30, 1))
               ],
               [
                   sg.Text('Preço semanal:', size=(17, 1)),
                   sg.Input(
                       default_text="Digite o preço do aluguel semanal",
                       key='rental_price',
                       size=(30, 1))
               ], [sg.Btn('Cadastrar Equipamento')]]
     self.__window = sg.Window('Create / Modify',
                               layout=layout,
                               size=(450, 150),
                               finalize=True)
예제 #6
0
 def __init__(self):
     # 设置pysimplegui主题,不设置的话就用默认主题
     sg.ChangeLookAndFeel('GreenTan')
     # 定义2个常量,供下面的layout直接调用,就不用一个个元素来调字体了
     # 字体和字体大小
     self.FONT = ("微软雅黑", 16)
     # 可视化界面上元素的大小
     self.SIZE = (20, 1)
     # 界面布局
     self.layout = [
         # sg.Image()插入图片,支持gif和png
         [sg.Image(filename="images/george.png", pad=(130, 0))],
         # sg.Text()显示文本
         [sg.Text('', font=self.FONT, size=self.SIZE)],
         # sg.Input()是输入框
         [sg.Text('请选择包含多个excel文件的文件夹:', font=self.FONT, size=(30, 1))],
         [sg.Input(key="_FOLDER_", readonly=True, size=(36, 1), font=self.FONT),
          sg.FolderBrowse(button_text='选择文件夹', size=(10, 1), font=self.FONT)],
         [sg.Text('')],
         [sg.Text('请输入要搜索的元素(需完全匹配):', font=("微软雅黑", 16), size=(28, 1)),
          sg.Input(key='_ELEMENT_', size=(10, 1), font=self.FONT)],
         [sg.Btn('开始搜索', key='_SEARCH_', font=("微软雅黑", 16), size=(28, 1)),
          sg.Input(key='_RESULT_', readonly=True, size=(10, 1), font=self.FONT)],
     ]
     # 创建窗口,引入布局,并进行初始化
     # 创建时,必须要有一个名称,这个名称会显示在窗口上
     self.window = sg.Window('excel批量搜索by李加林', layout=self.layout, finalize=True)
예제 #7
0
 def init_components(self):
     sg.theme('DarkGrey5')
     layout = [[
         sg.Text('Nome:   ', size=(7, 1)),
         sg.Input(default_text="Digite seu nome", key='name', size=(30, 1))
     ],
               [
                   sg.Text('Telefone:', size=(7, 1)),
                   sg.Input(default_text="Digite seu telefone",
                            key='phone',
                            size=(30, 1))
               ], [sg.Btn('Criar Cliente')],
               [sg.Listbox(values=self.__clientes, size=(30, 5))],
               [sg.Btn('Excluir'), sg.Btn('Modificar')], [sg.Btn('Voltar')]]
     self.__window = sg.Window('Menu',
                               layout=layout,
                               size=(500, 300),
                               finalize=True)
예제 #8
0
 def __init__(self):
     # 设置pysimplegui主题,不设置的话就用默认主题
     # sg.ChangeLookAndFeel('Purple')
     # 定义2个常量,供下面的layout直接调用,就不用一个个元素来调字体了
     # 字体和字体大小
     self.FONT = ("微软雅黑", 16)
     # 可视化界面上元素的大小
     self.SIZE = (20, 1)
     # 界面布局
     self.layout = [
         # sg.Image()插入图片,支持gif和png
         [sg.Image(filename="images/peppa.png", pad=(120, 0))],
         # sg.Text()显示文本
         [sg.Text('', font=self.FONT, size=self.SIZE)],
         # sg.Input()是输入框
         [sg.Text('选择要拆分的文件:', font=self.FONT, size=(30, 1))],
         [
             sg.Input('     *.xlsx文件 ',
                      key="_FILE_",
                      readonly=True,
                      size=(36, 1),
                      font=self.FONT),
             sg.FileBrowse(button_text='选择文件', size=(10, 1), font=self.FONT)
         ],
         [
             sg.Text('sheet页序号(从1开始):', font=self.FONT, size=self.SIZE),
             sg.Input(key='_SHEET_', font=self.FONT, size=(10, 1))
         ],
         [
             sg.Text('表头行数(从1开始):  ', font=self.FONT, size=self.SIZE),
             sg.Input(key='_TITLE_', font=self.FONT, size=(10, 1))
         ],
         [
             sg.Text('列号(从1开始):  ', font=self.FONT, size=self.SIZE),
             sg.Input(key='_COLUMN_', font=self.FONT, size=(10, 1))
         ],
         [sg.Text('')],
         [
             sg.Btn('开始拆分', key='_SUMMIT_', font=("微软雅黑", 16),
                    size=(20, 1)),
             sg.Input(key='_RESULT_',
                      readonly=True,
                      size=(10, 1),
                      font=self.FONT)
         ],
     ]
     # 创建窗口,引入布局,并进行初始化
     # 创建时,必须要有一个名称,这个名称会显示在窗口上
     self.window = sg.Window('按列拆分excel工作表by李加林',
                             layout=self.layout,
                             finalize=True)
예제 #9
0
 def init_components(self):
     sg.theme('DarkGrey5')
     layout = [[
         sg.Text('Nome:   ', size=(7, 1)),
         sg.Input(default_text="Digite seu nome", key='name', size=(30, 1))
     ],
               [
                   sg.Text('Telefone:', size=(7, 1)),
                   sg.Input(default_text="Digite seu telefone",
                            key='phone',
                            size=(30, 1))
               ], [sg.Btn('Criar Cliente', key='createcustomer')]]
     self.__window = sg.Window('Create / Modify',
                               layout=layout,
                               size=(300, 100),
                               finalize=True)
예제 #10
0
 def __init__(self):
     # 设置pysimplegui主题,不设置的话就用默认主题
     # sg.ChangeLookAndFeel('Purple')
     # 定义2个常量,供下面的layout直接调用,就不用一个个元素来调字体了
     # 字体和字体大小
     self.FONT = ("微软雅黑", 16)
     # 可视化界面上元素的大小
     self.SIZE = (20, 1)
     # 界面布局
     self.layout = [
         # sg.Image()插入图片,支持gif和png
         [sg.Image(filename="images/peppa.png", pad=(130, 0))],
         # sg.Text()显示文本
         [sg.Text('', font=self.FONT, size=self.SIZE)],
         # sg.Input()是输入框
         [sg.Text('请选择要生成目录树的文件夹:', font=self.FONT, size=(30, 1))],
         [
             sg.Input(key="_FOLDER_",
                      readonly=True,
                      size=(36, 1),
                      font=self.FONT),
             sg.FolderBrowse(button_text='选择文件夹',
                             size=(10, 1),
                             font=self.FONT)
         ],
         [sg.Text('')],
         [
             sg.Btn('生成目录树', key='_TREE_', font=("微软雅黑", 16), size=(23, 1)),
             sg.Input(key='_RESULT_',
                      readonly=True,
                      size=(10, 1),
                      font=self.FONT)
         ],
     ]
     # 创建窗口,引入布局,并进行初始化
     # 创建时,必须要有一个名称,这个名称会显示在窗口上
     self.window = sg.Window('目录树生成工具by李加林',
                             layout=self.layout,
                             finalize=True)
예제 #11
0
 def __init__(self):
     # 设置pysimplegui主题,不设置的话就用默认主题
     sg.ChangeLookAndFeel('Purple')
     # 定义2个常量,供下面的layout直接调用,就不用一个个元素来调字体了
     # 字体和字体大小
     self.FONT = ("微软雅黑", 16)
     # 可视化界面上元素的大小
     self.SIZE = (10, 1)
     # 界面布局
     self.layout = [
         [sg.Text('  社保参保月数计算器by英德关系李加林', font=("微软雅黑", 12))],
         [sg.Text('----------------------------------', font=self.FONT)],
         # sg.Image()插入图片,支持gif和png
         [sg.Image(filename="images/peppa.png")],
         # sg.Text()显示文本
         [sg.Text('', font=self.FONT, size=self.SIZE)],
         # sg.Input()是输入框
         [
             sg.Text('开始日期   ->', font=self.FONT, size=self.SIZE),
             sg.Input(key='_BEGIN_', font=self.FONT, size=self.SIZE)
         ],
         [
             sg.Text('结束日期   ->', font=self.FONT, size=self.SIZE),
             sg.Input(key='_END_', font=self.FONT, size=self.SIZE)
         ],
         [
             sg.Text('参保月数   <-', font=self.FONT, size=self.SIZE),
             sg.Input(key='_VALUE_',
                      font=self.FONT,
                      size=self.SIZE,
                      readonly=True)
         ],
         [sg.Text('')],
         [sg.Btn('开始计算', key='_SUMMIT_', font=("微软雅黑", 16), size=(23, 2))],
     ]
     # 创建窗口,引入布局,并进行初始化
     # 创建时,必须要有一个名称,这个名称会显示在窗口上
     self.window = sg.Window('社保参保月数计算器', layout=self.layout, finalize=True)
예제 #12
0
def calendar_box(text="", bt_color=None, enabled=True):
    """Creates button - single calendar box in format for constructing calendar.

    Keyword Arguments:
        text {str} -- box text (default: {""})
        bt_color {("text_color", "box_color")} -- tuple specifying box colors (default: {None})
        enabled {bool} -- box is clickable -> has key and makes events (default: {True})
    Returns:
        {PySimpleGUI.Button}
    """
    if enabled and text != "":
        key = f"-D:{text}-"
    else:
        key = None
    # size is in no of characters, which kinda sucks
    # CHECK boxes are too wide in linux desktop, change size respectively
    return sg.Btn(text,
                  key=key,
                  size=(3, 1),
                  button_color=bt_color,
                  font="courier 13",
                  pad=(0, 0),
                  disabled=not enabled)
예제 #13
0
 def init_components(self):
     sg.theme('DarkGrey5')
     layout = [[
         sg.Text('Customer Phone:', size=(14, 1)),
         sg.Input(default_text="Digite seu telefone",
                  key='phone',
                  size=(30, 1))
     ],
               [
                   sg.Text('Equipment Name:', size=(14, 1)),
                   sg.Input(default_text="Digite o equipamento",
                            key='equipmentname',
                            size=(30, 1))
               ],
               [
                   sg.Text('Rental weeks:', size=(14, 1)),
                   sg.Input(default_text="Digite as semanas",
                            key='rentalweeks',
                            size=(30, 1))
               ], [sg.Btn('Criar Rent', key='createrent')]]
     self.__window = sg.Window('Create / Modify',
                               layout=layout,
                               size=(350, 120),
                               finalize=True)
예제 #14
0
def fun_take_resl(auth_name):
    list_resl = fun_make_pron(auth_name)
    surn_name = list_resl[2]
    last_name = list_resl[3]
    if len(list_resl[0][0]) == 1:
        if len(list_resl[1][0]) == 1:
            last_code = fun_fetc_code(surn_name, list_resl[1][0][0].upper())
        else:
            layprintc = [[sg.Text('您所输入的姓名含有多音字请您选择读音首字母。')],
                         [
                             sg.Text('著者姓氏:' + surn_name),
                             sg.Text('著者名字:' + last_name + ',读音首字母为:'),
                             sg.Combo(list_resl[1][0], key='FC'),
                             sg.Btn('提交查询', key='handon')
                         ]]
            windowb = sg.Window('请选择读音',
                                layout=layprintc,
                                finalize=True,
                                font=("华文中宋", 15),
                                icon='ANA.ico')
            eventb, valueb = windowb.Read()
            if eventb == 'handon':
                pron_fscr = valueb['FC'].upper()
                if pron_fscr == '':
                    last_code = '请重新输入'
                else:
                    last_code = fun_fetc_code(surn_name, pron_fscr)
                windowb.close()
        fist_char = list_resl[0][0][0].upper()
    else:
        if len(list_resl[1][0]) == 1:
            layprintc = [[sg.Text('您所输入的姓名含有多音字请您选择读音首字母。')],
                         [
                             sg.Text('著者姓氏:' + surn_name + ',读音首字母为:'),
                             sg.Combo(list_resl[0][0], key='FCF'),
                             sg.Text('著者名字:' + last_name),
                             sg.Btn('提交查询', key='handon')
                         ]]
            windowb = sg.Window('请选择读音',
                                layout=layprintc,
                                finalize=True,
                                font=("华文中宋", 15),
                                icon='ANA.ico')
            pron_fscr = list_resl[1][0][0].upper()
            eventb, valueb = windowb.Read()
            if eventb == 'handon':
                pron_surn = valueb['FCF']
                if surn_name not in ['曾', '查']:
                    last_code = fun_fetc_code(surn_name, pron_fscr)
                else:
                    if surn_name == '曾':
                        if pron_surn == 'c':
                            last_code = fun_fetc_code('曾c', pron_fscr)
                        else:
                            last_code = fun_fetc_code(surn_name, pron_fscr)
                    else:
                        if pron_surn == 'c':
                            last_code = fun_fetc_code('查c', pron_fscr)
                        else:
                            last_code = fun_fetc_code(surn_name, pron_fscr)
                windowb.close()
        else:
            layprintc = [[sg.Text('您所输入的姓名含有多音字请您选择读音首字母。')],
                         [
                             sg.Text('著者姓氏:' + surn_name + ',读音首字母为:'),
                             sg.Combo(list_resl[0][0], key='FCF'),
                             sg.Text('著者名字:' + last_name + ',读音首字母为:'),
                             sg.Combo(list_resl[1][0], key='FCL'),
                             sg.Btn('提交查询', key='handon')
                         ]]
            windowb = sg.Window('请选择读音',
                                layout=layprintc,
                                finalize=True,
                                font=("华文中宋", 15),
                                icon='ANA.ico')
            eventb, valueb = windowb.Read()
            if eventb == 'handon':
                pron_surn = valueb['FCF']
                pron_fscr = valueb['FCL'].upper()
                if surn_name not in ['曾', '查']:
                    last_code = fun_fetc_code(surn_name, pron_fscr)
                else:
                    if surn_name == '曾':
                        if pron_surn == 'c':
                            last_code = fun_fetc_code('曾c', pron_fscr)
                        else:
                            last_code = fun_fetc_code(surn_name, pron_fscr)
                    else:
                        if pron_surn == 'c':
                            last_code = fun_fetc_code('查c', pron_fscr)
                        else:
                            last_code = fun_fetc_code(surn_name, pron_fscr)
                windowb.close()
        fist_char = pron_surn.upper()
    auth_code = fist_char + last_code
    return [auth_name, auth_code, surn_name, last_name]
예제 #15
0
You should have received a copy of the GNU General Public License along with this program.  If not, see <http://www.gnu.org/licenses/>.


'''
import pypinyin as pn
import auto_AUTHNumber as aan
import PySimpleGUI as sg
#define-var
sg.theme('SystemDefaultForReal')
layprinta = [[
    sg.Text(
        '本工具针对自动著者号生成开发\n使用时输入著者姓名即可获得双向对照信息。\n初版日期:2021-05-29,\n版本日期:2021-05-31,版本号:1.0.0-official\nAutomatic Numbering of Authors  Copyright (C) 2021  Matt Belfast Brown'
    )
], [sg.Text('请输入责任者姓名:'),
    sg.Input(key='serch'),
    sg.Btn('提交查询', key='handin')]]
fun_make_pron = aan.make_pronouncation
fun_fetc_code = aan.fetchcode


def fun_take_resl(auth_name):
    list_resl = fun_make_pron(auth_name)
    surn_name = list_resl[2]
    last_name = list_resl[3]
    if len(list_resl[0][0]) == 1:
        if len(list_resl[1][0]) == 1:
            last_code = fun_fetc_code(surn_name, list_resl[1][0][0].upper())
        else:
            layprintc = [[sg.Text('您所输入的姓名含有多音字请您选择读音首字母。')],
                         [
                             sg.Text('著者姓氏:' + surn_name),
예제 #16
0

sg.theme("DarkGrey14")

if not path.isdir("data"):
    mkdir("data")

memodata_path = "data/memodata.json"

memodata = json_to_data(memodata_path)
items_lb_val = memodata.titles()

items_col_lay = [
    [sg.Image(**search_img),
     sg.In(**search_in),
     sg.Btn(**add_btn)],
    [sg.LB(items_lb_val, **items_listbox)],
]

window = sg.Window(
    title="PyMemoPad",
    layout=[
        [sg.Col(items_col_lay), sg.VSep()],
        [sg.Btn(**exit_btn)],
    ],
    size=(550, 550),
    disable_close=True,
)

manager = EventManager(window, memodata)
# 创建布局
layout = [
    [
        sg.Text('请输入页数', font=(30), justification='center'),
        sg.Input(key='_PageNum_', size=(50, 1))
    ],
    [
        sg.Text('请输入时长', font=(30), justification='center'),
        sg.Input(key='_OverTime_', size=(50, 1))
    ],
    [
        sg.Text('输入关键字', font=(30), justification='center'),
        sg.Input(key='_KeyWords_', size=(50, 1))
    ],
    [
        sg.Btn('开始检索', key='_START_', font=(30), disabled=False),
        sg.Btn('终止检索', key='_STOP_', font=(30), disabled=True)
    ],
    [
        sg.Text('已有图片张数:', font=(30), justification='center'),
        sg.Text('0',
                key='Picture_Num',
                size=(5, 1),
                font=(30),
                justification='center')
    ],
    [
        sg.Multiline('还未开始检索',
                     key='_Multiline_',
                     size=(40, 10),
                     autoscroll=True,
예제 #18
0
def addition_popup(md: MemoData) -> bool:
    result = False
    pass_pin_col_lay = [
        [sg.Txt(**pass_txt), sg.In(**pass_in)],
        [sg.Check(**pass_check)],
    ]
    pass_pin_elem = sg.Col(pass_pin_col_lay, **pass_pin_col)

    used_err_col_lay = [
        [sg.Txt(**used_err_txt)],
    ]
    used_err_pin_elem = sg.Col(used_err_col_lay, **used_err_col)

    empty_err_col_lay = [
        [sg.Txt(**empty_err_txt)],
    ]

    empty_err_pin_elem = sg.Col(empty_err_col_lay, **empty_err_col)

    w = sg.Window(
        title="add memo",
        layout=[
            [sg.Txt("title:"), sg.In(**title_in)],
            [sg.Txt("lock:"),
             sg.Btn(**on_btn),
             sg.Btn(**off_btn)],
            [sg.pin(pass_pin_elem)],
            [sg.pin(used_err_pin_elem)],
            [sg.pin(empty_err_pin_elem)],
            [sg.Cancel(**cancel_btn), sg.OK(**ok_btn)],
        ],
        size=(255, 180),
        keep_on_top=True,
        disable_close=True,
        modal=True,
    )

    switch = SwitchButtons(w)

    while True:
        e, v = cast(tuple[addition, dict[addition, str]], w())

        if e in (sg.WIN_CLOSED, addition.cancel_btn):
            break

        lock = switch(e)

        w[addition.pass_col].update(visible=lock)

        char = "" if w[addition.pass_check].get() else "*"

        w[addition.pass_in].update(password_char=char)

        if e == addition.ok_btn:
            if verify_title_is_valid(w, md, v):
                md.memos.append(datas_to_memo(v, lock))
                result = True
                break

    w.close()
    return result
예제 #19
0
     sg.Text('Longitude:', size=(10, 1)),
     sg.Input('',
              size=(15, 1),
              enable_events=True,
              key='-LONG-')
 ],
 [
     sg.Text('Correction:', size=(10, 1)),
     sg.Input('0',
              disabled=True,
              size=(10, 1),
              enable_events=True,
              key='-CORRECTION-')
 ],
 [
     sg.Btn('Display', disabled=True, key='-DISPLAY-'),
     sg.Btn('Calc Correction',
            disabled=True,
            key='-CALC_CORRECTION-'),
     sg.Btn('Apply',
            disabled=True,
            key='-APPLY_CORRECTION-')
 ],
 [
     sg.Image(size=(275, 275),
              background_color='dark gray',
              key='-THUMBNAIL-')
 ],
 [
     sg.Btn('Write changes',
            disabled=True,
예제 #20
0
import PySimpleGUI as psg

layout = [[psg.Button('버튼1', size=(20, 8))],
          [psg.Btn('버튼2', size=(10, 2), button_color=("blue", "green"))],
          [psg.B("버튼3")], [psg.Ok("예"), psg.Cancel()], [psg.Yes(),
                                                        psg.No()]]
window = psg.Window("버튼 처리 학습", layout)

event, values = window.read()
window.close()
print(event, values)
예제 #21
0
layout = [[
    sg.Text('待转换文档目录',
            size=(15, 1),
            auto_size_text=False,
            justification='right'),
    sg.InputText(key='-From Folder-'),
    sg.FolderBrowse()
],
          [
              sg.Text('转换后文档目录',
                      size=(15, 1),
                      auto_size_text=False,
                      justification='right'),
              sg.InputText(key='-To Folder-'),
              sg.FolderBrowse()
          ], [sg.Btn('开始处理', key='_CONFIRM_'),
              sg.Btn('结束', key='_quit_')]]

# Create the Window
window = sg.Window('数据脱敏', layout)

# Create the event loop
while True:
    event, values = window.read()
    if event == '_CONFIRM_':
        try:
            main.editAll(str(values['-From Folder-']),
                         str(values['-To Folder-']))
            sg.popup('文档脱敏成功')
        except:
            sg.popup('处理出错,请检查文档')
예제 #22
0
 def __init__(self):
     # 设置pysimplegui主题,不设置的话就用默认主题
     sg.ChangeLookAndFeel('Purple')
     # 定义2个常量,供下面的layout直接调用,就不用一个个元素来调字体了
     # 字体和字体大小
     self.FONT = ("微软雅黑", 16)
     # 可视化界面上元素的大小
     self.SIZE = (20, 1)
     # 界面布局
     self.layout = [
         # sg.Image()插入图片,支持gif和png
         [sg.Image(filename=r"peppa.png", pad=(150, 0))],
         # sg.Text()显示文本
         [sg.Text('', font=self.FONT, size=self.SIZE)],
         # sg.Input()是输入框
         # 添加选择文件按钮,使用sg.FileBrowse()
         [sg.Text('请选择文件:', font=self.FONT, size=(30, 1))],
         [
             sg.Input(
                 '  ',
                 key="_FILE_",
                 readonly=True,  # readonly=True时不能在图形界面上直接修改该输入框内容
                 size=(36, 1),
                 font=self.FONT),
             sg.FileBrowse(button_text='选择文件', size=(10, 1), font=self.FONT)
         ],
         # 添加选择文件夹按钮,使用
         [sg.Text('请选择文件夹:', font=self.FONT, size=(30, 1))],
         [
             sg.Input('  ',
                      key="_FOLDER_",
                      readonly=True,
                      size=(36, 1),
                      font=self.FONT),
             sg.FolderBrowse(button_text='选择文件夹',
                             size=(10, 1),
                             font=self.FONT)
         ],
         [
             sg.Text(' 请输入数据:', font=self.FONT, size=self.SIZE),
             sg.Input(key='_DATA_', font=self.FONT, size=(10, 1))
         ],
         [
             sg.Text(' 这里是返回的结果:', font=self.FONT, size=self.SIZE),
             sg.Input(key='_RESULT_',
                      font=self.FONT,
                      size=(10, 1),
                      readonly=True)
         ],
         [sg.Text('')],
         # sg.Btn()是按钮
         [sg.Btn('按我开始', key='_SUMMIT_', font=("微软雅黑", 16), size=(20, 1))],
         # sg.Output()可以在程序运行时,将原本在控制台上显示的内容输出到一个图形文本框里(如print命令的输出)
         [
             sg.Output(size=(72, 6),
                       font=("微软雅黑", 10),
                       background_color='light gray')
         ]
     ]
     # 创建窗口,引入布局,并进行初始化
     # 创建时,必须要有一个名称,这个名称会显示在窗口上
     self.window = sg.Window('这是一个基本的pysimplegui窗口模板',
                             layout=self.layout,
                             finalize=True)
예제 #23
0
def readPage(software, sw4, matchindex):
    with open('pagehtml.txt', encoding='utf8', errors='ignore') as f:
        pagehtml = f.read()
        # print(pagehtml)

        # fine tuning here
        # ************************************************************************************************************************
        # SPECIAL CASES
        # ---bluezone
        if "BlueZone " in software:
            software = software.replace('BlueZone ', 'BlueZone Desktop')

        # remove -
        software = software.replace('-', '')
        # replace spaces with -
        software = software.replace(' ', '-')
        # remove brackets
        software = software.replace('(', '')
        software = software.replace(')', '')
        # prefer APP-packages
        software = "APP-" + software
        software = software.rstrip()

        # path directly to directory
        path = '		<td width="348"><font face="Arial" size="2"><a href="file://\\\\corp.ads\\software\\release\\apps\\' + software + '"> \\\\corp.ads\\software\\release\\apps\\' + software + '</a></font></td>'
        # print(path)
        pathCmp = re.sub('\W+', '', path)
        # ************************************************************************************************************************
        page_lines = pagehtml.splitlines()

        score = []
        #cmper = 'null'
        for line in page_lines:
            cmper = re.sub('\W+', '', line)
            score.append(fuzz.ratio(path, cmper))
            #print(line)

        # have to do this or same score will return only first index
        visited = []
        for i in range(len(score)):
            iter(i, score, visited)
        #print(score)

        if matchindex is 0:
            index = score.index(max(score))
        else:
            scoreset = frozenset(score)
            scoreset = sorted(score, reverse=True)
            index = score.index(scoreset[matchindex])

        html = page_lines[index]
        #print(html)

        # print()
        try:
            url = re.findall(r'file\:\/\/(.*?)"\>', html)
            path = url[0]
        except IndexError:
            layout = [[
                sg.T("Looking for: \n" + software[4:], font=("Helvetica", 20))
            ], [sg.T('\nSearch token: \"' + sw4 + '"\n')],
                      [sg.T("*** No Results ***\n\n")],
                      [
                          sg.OK(button_color=('black', 'orange'),
                                size=(18, 3),
                                font='Arial 12'),
                          sg.RealtimeButton('Open Software Library',
                                            size=(18, 3),
                                            font='Arial 12')
                      ]]

            window = sg.Window(software, layout, auto_size_text=True)

            while (True):
                # This is the code that reads and updates your window
                event, values = window.Read()
                if event is "Open Software Library":
                    try:
                        os.startfile(
                            "http://142.174.118.47/swlibrary/dbsearch.asp?search="
                            + sw4)
                    except:
                        pass
                if event == 'Quit' or values is None:
                    sys.exit()
                if event is "OK":
                    window.close()
                    return 0

            return
        if "rosoftApps" in path[33:]:
            # print("*** Not in Software Library ***\n\n")
            layout = [[
                sg.T("Looking for: \n" + software[4:], font=("Helvetica", 20))
            ],
                      [
                          sg.T('\nSearch token: \"' + sw4 + '"\n'),
                          sg.Btn("Best match", font='Arial 10')
                      ], [sg.T("*** No results ***\n\n")],
                      [
                          sg.OK(button_color=('black', 'orange'),
                                size=(18, 3),
                                font='Arial 12'),
                          sg.RealtimeButton('Open Software Library',
                                            size=(18, 3),
                                            font='Arial 12')
                      ]]

            window = sg.Window(software, layout, auto_size_text=True)

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

                if event is "Best match":
                    window.close()
                    return 2

                if event is "Open Software Library":
                    try:
                        os.startfile(
                            "http://142.174.118.47/swlibrary/dbsearch.asp?search="
                            + sw4)
                    except:
                        pass
                if event == 'Quit' or values is None:
                    sys.exit()
                if event is "OK":
                    window.close()
                    return 0

            return

        layout = [
            [sg.T("Looking for: \n" + software[4:], font=("Helvetica", 20))],
            [
                sg.T('\nSearch token: \"' + sw4 + '"\n'),
                sg.Btn("Best match", font='Arial 10'),
                sg.Btn("Next match", font='Arial 10')
            ], [sg.T("Found: \n" + path[33:] + "\n", font=("Helvetica", 20))],
            [
                sg.RealtimeButton('Install', size=(18, 3), font='Arial 12'),
                sg.RealtimeButton('Uninstall', size=(18, 3), font='Arial 12')
            ],
            [
                sg.RealtimeButton('Next',
                                  size=(18, 3),
                                  font='Arial 12',
                                  button_color=('black', 'orange')),
                sg.RealtimeButton('Open Software Library',
                                  size=(18, 3),
                                  font='Arial 12')
            ]
        ]

        window = sg.Window(software, layout, auto_size_text=True)

        while (True):
            # This is the code that reads and updates your window
            event, values = window.Read()
            #print(event)
            if event is "Best match":
                window.close()
                return (2)
            if event is "Next match":
                window.close()
                return (1)
            if event is "Install":
                # look for install script
                script = '-install.cmd'
                exe = '_install.exe'
                # print(path)
                listdir = os.listdir(path)
                fileList = []
                found = False

                for item in range(len(listdir)):
                    fileList.append(listdir.pop().lower())

                for file in fileList:
                    # print(file)
                    if script in file:
                        # print("\nInstall Script found.")
                        # run script directly
                        try:
                            os.startfile(path + '\\' + file)
                        except:
                            pass

                        found = True
                        break
                    elif exe in file:
                        # print("\nInstall Executable found.")
                        # run script directly
                        try:
                            os.startfile(path + '\\' + file)
                        except:
                            pass
                        # print("\n")
                        found = True
                        break
                if found == False:
                    # open directory
                    # print("Manual Install Required.\n")
                    try:
                        os.startfile(path)
                    except:
                        pass
            if event is "Uninstall":
                # look for install script
                script = '-uninstall.cmd'
                exe = '_uninstall.exe'
                # print(path)
                listdir = os.listdir(path)
                fileList = []
                found = False

                for item in range(len(listdir)):
                    fileList.append(listdir.pop().lower())

                for file in fileList:
                    # print(file)
                    if script in file:
                        # print("\nInstall Script found.")
                        # run script directly
                        try:
                            os.startfile(path + '\\' + file)
                        except:
                            pass

                        found = True
                        break
                    elif exe in file:
                        # print("\nInstall Executable found.")
                        # run script directly
                        try:
                            os.startfile(path + '\\' + file)
                        except:
                            pass
                        # print("\n")
                        found = True
                        break
                if found == False:
                    # open directory
                    # print("Manual Install Required.\n")
                    try:
                        os.startfile(path)
                    except:
                        pass
            if event is "Open Software Library":
                try:
                    os.startfile(
                        "http://142.174.118.47/swlibrary/dbsearch.asp?search="
                        + sw4)
                except:
                    pass
            if event == 'Quit' or values is None:
                sys.exit()
            if event is "Next":
                window.close()
                return 0

        return