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)
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)
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)
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()
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)
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)
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)
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)
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)
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)
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)
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)
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)
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]
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),
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,
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
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,
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)
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('处理出错,请检查文档')
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)
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