def report(): # need to flesh out layout = [ [sg.CalendarButton("from date", key="from")], [sg.CalendarButton("to date", key="to")], [sg.Cancel("Cancel"), sg.Submit("Submit")], ] window = sg.Window("Select Dates", layout, resizable=True) event, values = window.read() from_date = values["from"] to_date = values["to"] window.close() if not (from_date and to_date): sys.exit() else: from_date = values["from"].strftime("%Y-%m-%d") to_date = values["to"].strftime("%Y-%m-%d") results = Shipment.fetch_all_records_in_date(from_date, to_date) ezgmail.init() ezgmail.send("*****@*****.**", "Shipping Unit Program!", str(results[0]))
def obter_dados(self, lista_clientes): clientes = [] for cliente in lista_clientes: cod_nome = str(cliente['codigo']) + ' - ' + str(cliente['nome']) clientes.append(cod_nome) layout = [ [sg.Text('Cadastro de Anúncios. Informe os dados soliciados.',\ justification = 'center')], [sg.Text('Título: *'), sg.InputText(size=(30,10),key='-titulo-')], [sg.Text('Cliente: *'), sg.InputCombo(clientes, key='-cliente-')], [sg.In(key = '-data_inicio-', visible = False),\ sg.CalendarButton('Selecionar Data de Inicio*',\ target = '-data_inicio-', pad = None, key = '-cal_inicio-')], [sg.In(key = '-data_fim-', visible = False),\ sg.CalendarButton('Selecionar Data de Fim*',\ target = '-data_fim-', pad = None, key = '-cal_fim-')], [sg.Text('Investimento Diário: *R$'), \ sg.InputText(size=(17,10),key='-investimento-')], [sg.ReadButton('Cadastrar'),sg.ReadButton('Voltar')] ] self.__window = sg.Window('Cadastro de Anúncio').Layout(layout) button, values = self.__window.Read() self.__window.Close() if button == 'Cadastrar': dados = {'titulo': values['-titulo-'],'cliente': values['-cliente-'],\ 'data_inicio': values['-data_inicio-'], 'data_fim': \ values['-data_fim-'], 'investimento': values['-investimento-']} if button == 'Voltar' or button == sg.WIN_CLOSED: dados = None return dados
def get_asset_input_layout(): return [ # identification [sg.Text('ID: '), sg.InputText('', key='id'),], [sg.Text('Description: '), sg.InputText('', key='description'),], [sg.Text('Current: '), sg.Checkbox('(not retired/disposed)', default=True, key='current'),], [sg.Text('Model #: '), sg.InputText('', key='model'), sg.Text('Serial #: '), sg.InputText('', key='serial'),], # money stuff [sg.Text('Cost: ', tooltip=money_format), sg.InputText('', key='cost')], [sg.Text('Shipping Cost: ', tooltip=money_format), sg.InputText('', key='shipping')], [sg.Text('Cost Brand New: ', tooltip=money_format), sg.InputText('', key='cost_brand_new')], [sg.Text('Life Expectancy: '), sg.Spin([i for i in range(1,40)], initial_value=1, key='life_expectancy'), sg.Text('years'),], # dates [sg.Text(f'Date Placed: ', tooltip=date_format), sg.InputText(datetime.now(), key='date_placed'), sg.CalendarButton(button_text='change date', target=(sg.ThisRow, -1)),], [sg.Text('Date Removed: ', tooltip=date_format), sg.InputText(key='date_removed'), sg.CalendarButton(button_text='change date', target=(sg.ThisRow, -1)),], [sg.Text('Date Warranty Expires: ', tooltip=date_format), sg.InputText(key='date_warranty_expires'), sg.CalendarButton(button_text='change date', target=(sg.ThisRow, -1)),], # locations and counts [sg.Text('Bulk Count: '), sg.Text(str(default_bulk_count), key='bulk_count'),], [sg.Text('Notes'), sg.Multiline('', key='notes'),], [sg.Checkbox('Entered in MaintenanceDirect', default=False, key='maint_dir'),], [sg.Button('Add Asset'), sg.Button('Clear Form')] ]
def __init__(self): #layout self.API = ConnectionFactory.getConnection() self.paridade = Paridade(self.API).getParidadeAbertas() self.listaHora = horas.listaHora() layout = [[ sg.Text('Par', size=(8, 0)), sg.Combo(self.paridade, enable_events=True, key='par', size=(15, 0)) ], [ sg.Text('Hora Inicio', size=(8, 0)), sg.Combo(self.listaHora, key='horaInicio', size=(15, 0)), sg.Text('Hora Fim', size=(7, 0)), sg.Combo(self.listaHora, size=(15, 0), key=('horaFim')) ], [ sg.Text('Data Inicio', size=(8, 0)), sg.Input(key='dataInicio', enable_events=True, visible=True, size=(20, 0)), sg.CalendarButton('Calendario', target='dataInicio', pad=None, key='_CALENDAR_', format=('%Y-%m-%d')) ], [ sg.Text('Data Fim', size=(8, 0)), sg.Input(key='dataFim', enable_events=True, visible=True, size=(20, 0)), sg.CalendarButton('Calendario', target='dataFim', pad=None, key='_CALENDAR_', format=('%Y-%m-%d')) ], [sg.Text('Selecione os algoritimos')], [ sg.Checkbox('MHI', key='mhi'), sg.Checkbox('VT', key='vituxo'), sg.Checkbox('C3', key='c3') ], [ sg.Button('Conectar'), sg.Button('Enviar Dados'), sg.Button('Limpar') ] #[sg.Output(size=(150,10), key="_output_")] ] #janela self.janela = sg.Window('Catalogador de Velas').layout(layout)
def main(): matplotlib.use('TkAgg') dealRecs= DealVisual.dealRecs # 准备layout rankmap= {'不排序':0, '升序':1, '降序':2} corps=dealRecs.corps() layout= [[SG.CalendarButton('',(SG.ThisRow,0),True,(12,3,2020),k='-cldmin-',size=(10,1),format='%Y-%m-%d',enable_events=True), SG.Text('-'), SG.CalendarButton('','-cldmax-',True,(12,31,2020),k='-cldmax-',size=(10,1),format='%Y-%m-%d',enable_events=True), SG.Button('重置日期',k='-btnredate-'), SG.VerticalSeparator(), SG.Combo(corps,corps[0],(10,10),readonly=True,enable_events=True,k='-selcorp-'), SG.Spin(list(range(len(corps))),size=(3,1),enable_events=True,k='-selcorpseq-'), SG.Combo(list(rankmap.keys()),list(rankmap.keys())[0],(6,3),readonly=True,enable_events=True,k='-cmbRank-')], [SG.Canvas(k='-cvFig-')], [SG.ProgressBar(100,'horizontal',(20,5),k='-pbanim-')]] # 准备窗口 window= SG.Window('历史持仓',layout,finalize=True,size=(800,600)) sel=window['-selcorp-'] isel=window['-selcorpseq-'] cldmin=window['-cldmin-'] cldmax=window['-cldmax-'] pbanimval=0 figagg=figureagg(window['-cvFig-'].TKCanvas,DealVisual.fig) resetDateRange(cldmin,cldmax) # 启动主消息循环 while True: event,values= window.Read(100) if event==SG.WIN_CLOSED: break if event=='-selcorpseq-': sel.update(set_to_index=values['-selcorpseq-']) if event== '-cmbRank-': sel.update(values=dealRecs.corps(rankmap[values['-cmbRank-']])) if event in ['-selcorp-','-cmbRank-']: isel.update(sel.Values.index(values['-selcorp-'])) if event=='-selcorp-' or event==SG.TIMEOUT_KEY: DealVisual.draw_profit(values['-selcorp-']) figagg.draw() if event in ['-cldmin-','-cldmax-']: cldmin.update(cldmin.calendar_selection) cldmax.update(cldmax.calendar_selection) tm=time.strptime(cldmin.calendar_selection,'%Y-%m-%d') cldmin.calendar_default_date_M_D_Y=(tm.tm_mon,tm.tm_mday,tm.tm_year) tm=time.strptime(cldmax.calendar_selection,'%Y-%m-%d') cldmax.calendar_default_date_M_D_Y=(tm.tm_mon,tm.tm_mday,tm.tm_year) if event== SG.TIMEOUT_KEY: pbanimval=(pbanimval+1)%100 window['-pbanim-'].update(pbanimval)
def get_adjustment_timestamp_window(self, window_location, default_date): layout = [ [ sg.Text( "Please type a date as YYYY-MM-DD or use the date selector", key="date_message", ) ], [ sg.Input(default_text=default_date, key="date_input"), sg.CalendarButton( "", target="date_input", key="date_select", format="%Y-%m-%d", image_filename=self.images["cal_icon"], size=(1, 1), ), ], [sg.Button("Back"), sg.Button("Submit")], ] return sg.Window( self.PROGRAM_TITLE, layout=layout, location=window_location, auto_size_buttons=False, finalize=True, )
def __init__(self): sg.theme('BrightColors') # random randomiza o tema #abaixo, converto uma data em string e mando para Text 'data' #o text 'data' é atualizado dinamicamente pelos atributos target e format do text 'data_personalizada' #hora atual e minuto atual sao jogadas nos campos data e hora final data_atual = date.today().strftime('%d/%m/%Y') hora_atual = datetime.now().hour minuto_atual = datetime.now().minute popular_list_box = modulo_ponto.Acesso_BD() lista_populada = popular_list_box.popula_lista() #print(lista_populada) #layout da aplicacao layout = [ [sg.Text('Dia da marcação..:'), sg.Text(data_atual, key='data'), sg.CalendarButton('Usar outra Data?', target='data', key='data_personalizada', format='%d/%m/%Y'), sg.Checkbox('Madrugada?', change_submits=True, enable_events=True, default='0',key='madrugada')], [sg.Text('Horário de entrada'), sg.Input(key='-TIMEIN1-', size=(4,1), change_submits=True, do_not_clear=True, focus=True), sg.Text(':', pad=(0,0)),sg.Input(key='-TIMEIN2-', size=(4,1), change_submits=True, do_not_clear=True), sg.Text('Horário de Saída'),sg.Input(hora_atual, key='-TIMEOUT1-', size=(4, 1), change_submits=True, do_not_clear=True), sg.Text(':', pad=(0, 0)),sg.Input(minuto_atual, key='-TIMEOUT2-', size=(4, 1), change_submits=True, do_not_clear=True)], [sg.Button('Salvar')], [sg.Text('Horários Salvos..:')], [sg.Listbox(values=lista_populada, size=(90,15), auto_size_text=True, key='-BOX-')], [sg.Button('Editar'), sg.Button('Excluir'), sg.Button('Exportar'), sg.Button('Sair')], [sg.Text()], [sg.Text()], [sg.Text('Author: Valdemir Bezerra', font=('Helvetica', 10, 'underline italic'))] ] #monto a janela self.janela = sg.Window('Controle dos horários', size=(700, 400)).layout(layout)
def runUI(): global totalCompanies layout = [[sg.Text('Fetch Leads')], [sg.Text('Destination for Files:', size=(16, 1)), sg.InputText(key='folder'), sg.FolderBrowse(target='folder')], [sg.Text('Date of Desired File:', size=(16, 1)), sg.InputText('Choose the date ---->', size=(30, 1), key='date'), sg.CalendarButton("Date", target='date',size=(15, 1))], [sg.Text('Keyword:', size=(16,1)), sg.InputText('',size=(30, 1), key = 'keyword')], [sg.Submit()]] window = sg.Window('MULE 002', layout) #keep UI open unless user closes it while True: event, values = window.Read() if event is None: break dest = values['folder'] date = values['date'] key = values['keyword'] if date == 'Choose the date ---->' or dest == '': sg.Popup("Please fill necessary criteria") continue newDest, fileName = downloadTextFile(date, dest) infoList = readTextFile(newDest, key) if len(infoList) != 0: finish = exportToCSV(infoList, dest, fileName) if finish is True: totalCompanies = 0 sg.Popup("Done!") print(infoList)
def create_field_date(field_def): date_default = util.get_date_field_default(field_def['default_value']) field_key = 'input_' + field_def['api_name'] return (sg.In(default_text=date_default, size=(20, 1), key=field_key), sg.CalendarButton(button_text='Choose Date', target=field_key, key='date'))
def get_date(title=None): if title is None: title = 'Choose Date' layout = [[sg.Text('Enter Date (YYYY-MM-DD) format')], [ sg.CalendarButton('Pick Date', target='date', key='cal_button'), sg.Input(key='date', enable_events=True) ], [sg.Button('Ok'), sg.Button('Cancel')]] win = sg.Window(title, layout=layout) while True: event, values = win.Read() if event is None or event == 'Cancel': win.Close() return if event == 'date': date = values[event][:10] # keep only YYYY-MM-DD win.Element(event).Update(value=date) try: date = pd.Timestamp(date) # Currently not supported # win.Element('cal_button').Update( # default_date_m_d_y=(date.month, date.day, date.year)) except ValueError: pass elif event == 'Ok': break win.Close() return pd.Timestamp(values['date']).to_pydatetime()
def create_new_patient(first_name: str = "", last_name: str = "", id_type: str = "", id_data: str = "") -> None: labels = [[gui.T("First Name:")], [gui.T("Last Name:")], [gui.T("ID Type:")], [gui.T("ID Value:")], [gui.T("Height:")], [gui.T("Weight:")], [gui.T("Sex:")], [gui.T("Date of Birth:")]] inputs = [[gui.In(first_name, key="first_name", size=(17, 1))], [gui.In(last_name, key="last_name", size=(15, 1))], [ gui.InputCombo(idTypes, default_value=id_type, key="id_type", size=(15, 1)) ], [gui.In(id_data, key="id_data", size=(15, 1))], [gui.In(key="height", size=(15, 1))], [gui.In(key="weight", size=(15, 1))], [gui.InputCombo(sexOptions, key="sex", size=(15, 1))], [ gui.In(str(date.today()), key="dob", size=(9, 1), pad=(2, 0)), gui.CalendarButton("", target="dob", image_filename="images/calendar.png", image_subsample=18) ]] layout = [[gui.T("Input new patient information:", key="top_text")], [gui.Column(labels), gui.Column(inputs)], [gui.Submit(), gui.Button("Provider Menu")]] window = gui.Window("Edit Patient Info").Layout(layout) while True: button, values = window.Read() if button in (None, "Quit"): window.close() break elif button == "Provider Menu": window.close() provider_menu() break elif button == "Submit": if len(values["dob"]) >= 10: dob = date.fromisoformat(values["dob"][:10]) else: dob = None patient = Patient(values["first_name"], values["last_name"], dob, values["id_data"], values["id_type"], values["sex"], values["height"], values["weight"]) try: db.add_patient(patient) window.close() display_patient(patient) break except Conflict: window["top_text"].update("Patient already exists!")
def edit_patient_info(patient: Patient) -> None: labels = [[gui.T("First Name:")], [gui.T("Last Name:")], [gui.T("ID Type:")], [gui.T("ID Value:")], [gui.T("Height:")], [gui.T("Weight:")], [gui.T("Sex:")], [gui.T("Date of Birth:")]] inputs = [[ gui.In(patient.first_name, key="first_name", size=(17, 1), disabled=True) ], [ gui.In(patient.last_name, key="last_name", size=(15, 1), disabled=True) ], [ gui.InputCombo(idTypes, default_value=patient.id_type, key="id_type", size=(15, 1), disabled=True) ], [ gui.In(patient.id_data, key="id_data", size=(15, 1), disabled=True) ], [gui.In(str(patient.height), key="height", size=(15, 1))], [gui.In(str(patient.weight), key="weight", size=(15, 1))], [ gui.InputCombo(sexOptions, default_value=patient.sex, key="sex", size=(15, 1)) ], [ gui.In(str(patient.dob), key="dob", size=(9, 1), pad=(2, 0)), gui.CalendarButton("", target="dob", image_filename="images/calendar.png", image_subsample=18) ]] layout = [[gui.Column(labels), gui.Column(inputs)], [gui.Submit()]] window = gui.Window("Edit Patient Info").Layout(layout) button, values = window.Read() patient.first_name = values["first_name"] patient.last_name = values["last_name"] patient.id_type = values["id_type"] patient.id_data = values["id_data"] patient.height = values["height"] patient.weight = values["weight"] patient.sex = values["sex"] if len(values["dob"]) >= 10: patient.dob = date.fromisoformat(values["dob"][:10]) else: patient.dob = None db.push_patient(patient)
def get_report_date_window(self, window_location, start_date, stop_date): layout = [ [sg.Text("Start")], [ sg.Input(start_date, key="start"), sg.CalendarButton( "", target="start", key="date_select", format="%Y-%m-%d", image_filename=self.images["cal_icon"], size=(1, 1), ), ], [sg.Text("End")], [ sg.Input(stop_date, key="stop"), sg.CalendarButton( "", target="stop", key="date_select", format="%Y-%m-%d", image_filename=self.images["cal_icon"], size=(1, 1), ), ], [ sg.Text( "Error: Nothing was tracked during the dates selected.", key="error_message", visible=False, ) ], [sg.Button("Submit"), sg.Button("Cancel")], ] return sg.Window( self.PROGRAM_TITLE, layout=layout, location=window_location, auto_size_buttons=False, finalize=True, )
def new_menu_modal(self): calendar_icon = './KitchenGUI/calendar2.png' layout = [ [sg.T('Date Range: '), sg.In(key='-MODAL-START-', enable_events=True, size=(10,1)), sg.CalendarButton('', format='%Y-%m-%d', button_color=(sg.theme_background_color(), sg.theme_background_color()), image_filename=calendar_icon, image_subsample=8), sg.T('To'), sg.In(key='-MODAL-END-', enable_events=True, size=(10,1)), sg.CalendarButton('', format='%Y-%m-%d', button_color=(sg.theme_background_color(), sg.theme_background_color()), image_filename=calendar_icon, image_subsample=8)], [sg.T('Menu Name: '), sg.In(key='-MODAL-NAME-', enable_events=True, size=(36,1))], [sg.Button('Create', key="-MODAL-CREATE-"), sg.Button('Cancel', key="-MODAL-CANCEL-")] ] window = sg.Window('New Menu', layout, finalize=True, modal=True) set_name = False while True: event, values = window.read() if event in (sg.WIN_CLOSED, "-MODAL-CANCEL-"): break elif event == "-MODAL-NAME-": set_name = True elif event == "-MODAL-CREATE-": start = window['-MODAL-START-'].get() end = window['-MODAL-END-'].get() name = window['-MODAL-NAME-'].get() new_menu = Menu.menu(start=start, end=end, name=name) self.model.set('activeMenu', value=new_menu) self.model.set('activeMenuDay', value=new_menu.getDay(0)) break if not set_name: start = window['-MODAL-START-'].get() end = window['-MODAL-END-'].get() window['-MODAL-NAME-'].update(value=f'{start}{Menu.menu.date_delimiter}{end}') window.close()
def __init__(self): mod = Modalidade() modalidades = mod.getMod() conteudo = [ [gui.Text("Nome: ", size=(15, 1)), gui.Input(key="txtNome")], [gui.Text("CPF: ", size=(15, 1)), gui.Input(key="txtCpf")], [gui.Text("E-mail: ", size=(15, 1)), gui.Input(key="txtEmail")], [ gui.Text("Sexo: ", size=(15, 1)), gui.Radio("Feminino", "sexo", key="F"), gui.Radio("Masculino", "sexo", key="M") ], [ gui.Text("Modalidades: ", size=(15, 1)), gui.Listbox(list(modalidades.keys()), size=(20, 8), select_mode=gui.LISTBOX_SELECT_MODE_EXTENDED, key='_MOD_') ], [ gui.Text("Telefone residencial: ", size=(15, 1)), gui.Input(key="txtFone_res") ], [ gui.Text("Telefone celular: ", size=(15, 1)), gui.Input(key="txtFone_cel") ], [ gui.Text("Data de nascimento: ", size=(15, 1)), gui.Input("", key="data_nasc"), gui.CalendarButton("Selecione", key="date") ], [ gui.Text("Endereço: ", size=(15, 1)), gui.Input(key="txtEndereco") ], [ gui.Text("Observações: ", size=(15, 1)), gui.Multiline(size=(43, 5), key="txtObs") ], [ gui.Text("Status: ", size=(15, 1)), gui.InputCombo(("Inativo", "Ativo"), size=(20, 1), key="status") ], [gui.Button("Salvar")] ] self.tela = gui.Window("Cadastro de Alunos").layout(conteudo)
def dateWidget(valtype, val, key, disabled=False, size=(None,None)): if val is None: val = '' return [ sg.In(val, size=(20,1), key=key, change_submits=True, do_not_clear=True, disabled=disabled), sg.CalendarButton("", target=key, default_date_m_d_y=(val.month, val.day, val.year), image_filename=CALENDAR_ICON, image_size=(25, 25), image_subsample=1, border_width=0), ]
def export_to_csv(): layout = [ [sg.CalendarButton("from date", key="from")], [sg.CalendarButton("to date", key="to")], [sg.Cancel("Cancel"), sg.Submit("Submit")], ] window = sg.Window("Select Dates", layout, resizable=True) _, values = window.read() from_date = values["from"] to_date = values["to"] window.close() if not (from_date and to_date): sys.exit() else: from_date = values["from"].strftime("%Y-%m-%d") to_date = values["to"].strftime("%Y-%m-%d") results = Shipment.fetch_all_records_in_date(from_date, to_date) with open(f"{from_date} to {to_date} consol.csv", "w", newline="") as csvfile: r = csv.writer(csvfile, delimiter=",") headings = [ "Client", "Width", "Length", "Height", "Gross Weight", "Purpose", "On-hand", "Create Date", "Release Status", "HAWB", "MAWB", ] r.writerow(headings) for i in range(len(results)): r.writerow(results[i])
def gui_add_order(unique_distributors, unique_grants, unique_sivugs): get_item = True order_values = None items_values = None cur_date = datetime.datetime.now() cur_date = '%s-%s-%s' % (cur_date.year, cur_date.month, cur_date.day) # create order layout = [ [sg.Text('Please enter your order:')], [ sg.Text('Distributor: '), sg.Combo(unique_distributors, key='distributor') ], [ sg.CalendarButton('Order Date', key='date', disabled=False, focus=True, target='date_picked', format='%Y-%m-%d'), sg.InputText(cur_date, key='date_picked') ], [sg.Text('SAP number: '), sg.InputText(key='SAP_number')], [sg.Text('Grant: '), sg.Combo(unique_grants, key='grant_number')], [sg.Text('Order File: '), sg.In(key='order_file'), sg.FileBrowse()], [ sg.Text('Price Quote File: '), sg.In(key='price_quote_file'), sg.FileBrowse() ], [sg.Button('Ok'), sg.Button('Cancel')] ] # Create the Window window = sg.Window('Add Order', layout, font=10) while True: event, order_values = window.read() if event in (None, 'Cancel'): get_item = False order_values = None break if event in ('Ok'): if order_values['distributor'] == '': gui_message("Must enter a distributor") else: break window.close() if get_item: items_values = add_items_to_order(unique_sivugs) return order_values, items_values
def configura(self, dados_partida, jogadores, presentes, gols_mandante): sg.ChangeLookAndFeel('SystemDefault'), layout = [ [sg.CalendarButton('Data:', target='4', button_color=('red', 'white'), format=('%d/%m/%Y')), sg.InputText(dados_partida['data'], key='4', visible=True, disabled=True, size=(9, 1)), sg.Checkbox('Casa', key='5', font='Arial 12', default=True), sg.Checkbox('Fora', key='6', font='Arial 12')], [sg.Text('')], [sg.Text('Inter do Carianos', size=(14, 1)), sg.InputText(gols_mandante, size =(2,1), key='2', disabled=True), sg.Text(' x ', size=(2, 1)), sg.InputText(dados_partida['gols_adversario'], size =(2,1), key='3'), sg.Text(' ', size=(1, 1)), sg.InputText(dados_partida['adversario'], size=(14, 1), key='1')], [sg.Text('')], [sg.Text(' Plantel'), sg.Text(' Presentes')], [sg.Listbox(values=(jogadores), size=(43, 29), font='Fixedsys 15', key='jogador'), sg.Listbox(values=(presentes), size=(43, 29), font='Fixedsys 15', key='presente')], [sg.Text('Go:'), sg.Spin(values=('0','1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17','18','19','20','21','22','23','24','25','26','27','28','29','30','31','32','33','34','35','36','37','38','39','40','41','42','43','44','45','46','47','48','49','50','51','52','53','54','55','56','57','58','59','60','61','62','63','64','65','66','67','68','69','70','71','72','73','74','75','76','77','78','79','80','81','82','83','84','85','86','87','88','89','90','91','92','93','94','95','96','97','98','99'), initial_value='0', key='go'), sg.Text('Ca:'), sg.Spin(values=('0','1','2'), initial_value='0', key='ca'), sg.Text('Cv:'), sg.Spin(values=('0','1'), initial_value='0', key='cv'), sg.Text(' '), sg.Submit('Adicionar', font='Arial 12', size=(18, 1), key='adiciona'), sg.Submit('Retirar', font='Arial 12', size=(18, 1), key='retira')], [sg.Submit('Confirmar', font='Arial 12', size=(10, 1), key='confirma')] ] layout.extend(self.voltar()) self.__window = sg.Window('Partida', element_justification='left', size=(800, 850), font='Arial 24', icon='icon.ico').Layout(layout)
def getUserInput(): times = ["12:00 AM", "12:30 AM", "1:00 AM", "1:30 AM", "2:00 AM", "2:30 AM", "3:00 AM", "3:30 AM", "4:00 AM", "4:30 AM", "5:00 AM", "5:30 AM", "6:00 AM", "6:30 AM", "7:00 AM", "7:30 AM", "8:00 AM", "8:30 AM", "9:00 AM", "9:30 AM", "10:00 AM", "10:30 AM", "11:00 AM", "11:30 AM", "12:00 PM", "12:30 PM", "1:00 PM", "1:30 PM", "2:00 PM", "2:30 PM", "3:00 PM", "3:30 PM", "4:00 PM", "4:30 PM", "5:00 PM", "5:30 PM", "6:00 PM", "6:30 PM", "7:00 PM", "7:30 PM", "8:00 PM", "8:30 PM", "9:00 PM", "9:30 PM", "10:00 PM", "10:30 PM", "11:00 PM", "11:30 PM"] party_sizes = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21] layout = [ [sg.Text("Find Your Table", justification="center", size=(45,1), font=("Source Sans Bold", 25))], [sg.Text("")], [sg.CalendarButton("Date", font=("Source Sans Bold", 14), close_when_date_chosen=True, target="date_input", no_titlebar=False, format='%m/%d/%Y'), sg.Input(key="date_input", size=(15,1), font=("Source Sans Bold", 14), default_text=datetime.datetime.now().strftime("%m/%d/%Y")), sg.Text("Time", font=("Source Sans Bold", 14)), sg.Combo(times, font=("Source Sans Bold", 14), key="time_input", readonly=True, default_value=formatCurrentTime(datetime.datetime.now().strftime("%I:%M %p"))), sg.Text("Party Size", font=("Source Sans Bold", 14)), sg.Combo(party_sizes, font=("Source Sans Bold", 14), key="party_input", readonly=True, default_value=2), sg.Text("Neighborhood", font=("Source Sans Bold", 14)), sg.Input(size=(15,1), font=("Source Sans Bold", 14), key="hood_input", tooltip="Example: Murray Hill")], [sg.Text("")], [sg.Button("Submit", font=("Source Sans Bold", 14)), sg.Exit(font=("Source Sans Bold", 14))] ] window = sg.Window('Reservation Details', layout) #Loop for open UI window to run while True: event, values = window.read() #Data validation when submit is hit if event == "Submit": date = values["date_input"] time = values["time_input"] party_size = values["party_input"] hood = values["hood_input"] values.pop("Date") if "" in values.values(): errorWindow("Please complete all the fields") else: try: datetime.datetime.strptime(values["date_input"], "%m/%d/%Y") except: errorWindow("Please enter a valid date format \"MM/DD/YYYY\" ") continue if datetime.datetime.strptime(values["date_input"]+" "+addZeroPadding(values["time_input"]), "%m/%d/%Y %I:%M %p") < datetime.datetime.now(): values["date_input"] = datetime.datetime.now().strftime("%m/%d/%Y") values["time_input"] = formatCurrentTime(datetime.datetime.now().strftime("%I:%M %p")) break else: break #Quit if the window is closed or "Exit" is selected if event in (sg.WIN_CLOSED, 'Exit'): quit() window.close() return date, time, party_size, hood
def open_CALENDAR(wndw): wndw.Close() os.system('cls') # on windows layout_CALENDAR = [ menu_def, [sg.T('Calendar Test')], [ sg.In('', size=(20, 1), key='-CALENDAR IN-'), sg.CalendarButton('Choose Date', target='-CALENDAR IN-', key='-CALENDAR date-') ], [sg.Button('CALENDAR', key='-CALENDAR BT-'), sg.Exit()] ] sg.ChangeLookAndFeel('BrownBlue') wndw = sg.Window('Calendar', location=(700, 400)).Layout(layout_CALENDAR) return wndw
def __open_add_context(self): def TextLabel(text): return sg.Text(text + ':', justification='r', size=(15, 1)) # ------ GUI Definition ------ # layout = [ [ sg.Text("Add Entry", font="Any 15"), sg.Text("Invalid entries! Try again.", key="-ERROR-", visible=False) ], [TextLabel("Amount"), sg.Input(key="-AMOUNT-")], [TextLabel("Reason"), sg.Input(key="-REASON-")], [ TextLabel("Date"), sg.Input(disabled=True, key="-DATE-"), sg.CalendarButton("📅") ], [sg.Button("Save", key="-SAVE-"), sg.Button("Cancel")], ] window = sg.Window("Add entry", layout, keep_on_top=True, finalize=True) while True: event, values = window.read() if event == sg.WIN_CLOSED or event == "Cancel": window.close() break print("Button = ", event) # ------ Process save ------ # if event == "-SAVE-": amount = values["-AMOUNT-"] reason = values["-REASON-"] date = values["-DATE-"] if not amount or not reason or not date: window["-ERROR-"].update(visible=True) else: self.database_connector.add_expense(amount, reason, date) window.close()
def forecast(): sizein = (20, 10) layout = [ [sg.Button('make forecast')], [ sg.Text('date'), sg.In(key='C1', enable_events=True, visible=True), sg.CalendarButton( 'from', target='C1', ), sg.Text('kvant'), sg.InputText() ], # [sg.Output(size=(1000, 50))], [sg.Cancel()] ] window = sg.Window('fitness base', layout, size=(1500, 500)) # 89824366463 2020 year gum evening while True: event, values = window.read() if event == 'Cancel' or event == None: break date1 = values['C1'].split()[0] kvant = values[0] print(values) print(date1) if event == 'make forecast': query = ' select c.cost from content c where c.date_in>={d1} join `time interval` ti on `ti`.id = ct.interval_id'.format( d1=date1, ) ######################################################this query don't work print(query) result = None try: cursor.execute(query) result = cursor.fetchall() except Error as e: error(f"The error '{e}' occurred") break print(result) ans = 0 for i in result: ans += i print('sum', ans) window.close()
def _create_book_form_frame(self): self.file_input = sg.InputText(enable_events=True, key=BookTab.EventKeys.FILE_INPUT) browse_button = sg.FileBrowse(file_types=(("Text files", "*.txt"), ("All Files", "*"))) self.title_input = sg.InputText() self.author_input = sg.InputText() self.date_input = sg.InputText() select_date_button = sg.CalendarButton('Select', target=(sg.ThisRow, -1), format=DATE_FORMAT) self.file_size_text = sg.Text("File size: None", auto_size_text=False) insert_book_button = sg.Ok("Insert Book", key=BookTab.EventKeys.INSERT_BOOK, size=(20, 0)) self.error_text = sg.Text("", text_color=sgh.ERROR_TEXT_COLOR, auto_size_text=False) frame = sg.Frame( title="", layout=[ [ sg.Text("Path:", size=(5, 1)), self.file_input, browse_button ], [sg.Text("Title:", size=(5, 1)), self.title_input], [sg.Text("Author:", size=(5, 1)), self.author_input], [ sg.Text("Date:", size=(5, 1)), self.date_input, select_date_button ], [self.file_size_text], [insert_book_button, self.error_text], ]) return frame
def show_gui(): ''' Display GUI to enter ride info. ''' sg.theme('Reddit') layout = [[ sg.Text('Date'), sg.Input(key='Date'), sg.CalendarButton('...', format='%Y-%m-%d') ], [sg.Text('Miles'), sg.Input(key='Miles')], [ sg.Radio('Outside', 'Radio1', key='Outside'), sg.Radio('Zwift', 'Radio1', default=True, key='Zwift') ], [sg.Button('Submit', bind_return_key=True), sg.Button('Cancel')]] window = sg.Window('Enter Ride Data', layout, font=('Arial 10')) while True: event, values = window.read() if event in (sg.WIN_CLOSED, 'Cancel'): break elif event == 'Submit': date = values['Date'] miles = values['Miles'] location = '' if values['Outside']: location = 'outside' else: location = 'zwift' with open('rides.csv', 'a', newline='') as csvfile: ride_writer = csv.writer(csvfile, delimiter=',') ride_writer.writerow([date, miles, location]) break window.close()
def init_window() -> sg.Window: sg.theme('SystemDefault1') WINDOW_LAYOUT = [ [sg.Text("Image Folder"), sg.In(enable_events=True, key="-FOLDER-"), sg.FolderBrowse(), ], [sg.Listbox(values=[], enable_events=True, key="-FILE LIST-", disabled=True, select_mode=sg.LISTBOX_SELECT_MODE_EXTENDED, size=(70, 20)) ], [sg.Text("File"), sg.Text(size=(70, 1), key="-TFILEPATH-")], [sg.HSeparator()], # ===================================== [sg.Text("Exif date", size=(20, 1)), sg.Text(key="-TEXIF_DATE-", size=(20, 1))], [sg.Text("Exif date original", size=(20, 1)), sg.Text(key="-TEXIF_DATE_ORIGINAL-", size=(20, 1))], [sg.Text("Exif date digitalized", size=(20, 1)), sg.Text(key="-TEXIF_DATE_DIGITALIZED-", size=(20, 1))], [sg.HSeparator()], # ===================================== [sg.Text("New original date", size=(20, 1)), sg.In(key="-TNEW_DATE-", disabled=True), sg.CalendarButton("Edit", key="-BEDIT_DATE-", disabled=True) ], [sg.Button("Update", key="-BUPDATE-", disabled=True), sg.Button("Update & select next", key="-BUPDATE_SEL_NEXT-", disabled=True), sg.Button("Update selected files", key="-BUPDATE_ALL_SELECTED-", disabled=True), sg.Button("Update all files in directory", key="-BUPDATE_ALL_DIR-", disabled=True),], [sg.ProgressBar(10, key="-PROGRESS-", visible=False, size=(50, 20))], [sg.Text(key="-STATUS-", size=(70, 1))], [sg.Text("Datetime guess format strings")], [sg.Multiline(default_text=DATE_DEFAULT_PATTERN, key="-DATE_PATTERN-")], ] return sg.Window("Exif date editor", WINDOW_LAYOUT)
def interaction_p1(): frame_date = [[sg.In(key='date'), sg.CalendarButton('Choose Date')]] frame_spoke_to = [[ sg.Radio('Yes', 'spoke', key='spoke_yes', enable_events=True), sg.Radio('No', 'spoke', key='spoke_no', enable_events=True) ]] layout = [[sg.Frame('Date of Contact', frame_date)], [sg.Frame('Did you speak to the alumni?', frame_spoke_to)], [sg.OK(), sg.Cancel()]] window = sg.Window('UIF: Alumni Database', layout) while True: event, values = window.read() if event in ('Cancel', sg.WIN_CLOSED): values = None break elif event == 'OK': if len(values['date']) == 0: sg.popup_ok('Please select a date which\n' + 'you contacted the alumni.') elif sum([values['spoke_yes'], values['spoke_no']]) == 0: sg.popup_ok('Please select an option if you\n' + 'spoke to the alumni or not.') elif (len(values['date']) != 0 and sum([values['spoke_yes'], values['spoke_no']]) == 1): break window.close() return values
if event in (None, 'Cancel'): break elif event == 'Send Email': sg.theme('Dark Amber') layout = [[ sg.Frame(layout=[[ sg.Text( 'Select a date or dates to receive emails', key='-TXT-') ], [ sg.Input(key='-IN-', size=(20, 1)), sg.CalendarButton( 'Start Date', close_when_date_chosen =True, target='-IN-') ], [ sg.Input(key='-IN1-', size=(20, 1)), sg.CalendarButton( 'End Date ', close_when_date_chosen =True, target='-IN1-') ], [ sg.Button( "Send Email",
[sg.Text('Downloads files from edp', size=(20, 2))], [sg.Text('Gestão', size=(20, 1)), sg.Combo(choices, key='GESTAO', default_value='None', enable_events=True)], [sg.Text('OU', size=(30, 1), font='Any 15', justification='center')], [sg.Text('CPEs ou CILs', size=(20, 1)), sg.InputText(key='CILS-OR-CPES', size=(60, 3), enable_events=True)], [ sg.Text('', size=(20, 1)), sg.Text('Data de Inicio', size=(20, 1), justification='center'), sg.Text('Data de Fim', size=(20, 1), justification='center') ], [ sg.Text('Intervalo de Datas', size=(20, 1)), sg.In(key='DATE-BEGIN', enable_events=True, visible=False), sg.CalendarButton('2013-01', target='DATE-BEGIN', pad=None, button_color=('red', 'white'), key='DATE-BEGIN-BTN', format=('%Y-%m'), size=(20, 1)), sg.In(key='DATE-END', enable_events=True, visible=False), sg.CalendarButton(dt.now().date().strftime('%Y-%m'), target='DATE-END', pad=None, button_color=('red', 'white'), key='DATE-END-BTN', format=('%Y-%m'), size=(20, 1)) ], [sg.Text('', size=(20, 2))], [sg.Text('Pasta de destino dos ficheiros\n(irá para a rede por defeito):', size=(20, 3), justification='center'), sg.InputText(key='DESTINATION-PATH', size=(60, 3), justification='center')], [sg.Button('Download Files', key='OK_DOWNLOAD')] ] tab_info = [ [sg.Text('gets info from edp', size=(20, 2))], [sg.Text('Gestão', size=(20, 1)), sg.Combo(choices, key='GESTAO_INFO', default_value='None', enable_events=True)], [sg.Text('OU', size=(30, 1), font='Any 15', justification='center')],
def create_window(self): """ Create GUI instance """ sg.change_look_and_feel(self.theme) # Column layout for media player button controls buttons_group = [[ sg.In(key='CALENDAR', enable_events=True, visible=False), sg.CalendarButton('', image_filename=BUTTON_DICT['CALENDAR'], pad=(0, 0), button_color=('white', self.default_bg_color), border_width=0, key='CALENDAR', format=('%Y%m%d')), self.button('REWIND', BUTTON_DICT['START'], "Navegar entre os eventos marcados."), self.button('REWIND_10', BUTTON_DICT['REWIND_10'], "Recuar 10s"), self.button('REWIND_1', BUTTON_DICT['REWIND_1'], "Recuar 1s"), self.button('PLAY', BUTTON_DICT['PLAY_OFF'], "Pausar ou Resumir a execução."), self.button('FORWARD_1', BUTTON_DICT['FORWARD_1'], "Avançar 1s"), self.button('FORWARD_10', BUTTON_DICT['FORWARD_10'], "Avançar 10s"), self.button('FORWARD', BUTTON_DICT['END'], "Navegar entre os eventos marcados."), ]] # Column layout for media info and instructions info_column = [[ sg.Text('Loading...', size=(45, 3), font=(sg.DEFAULT_FONT, 8), pad=(0, 5), key='INFO') ]] direita_column = [ [ sg.Text('dd/mm/aaaa', font=(sg.DEFAULT_FONT, 8, 'bold'), key='NOW'), sg.Text('Horários disponíveis: ', font=(sg.DEFAULT_FONT, 8, 'bold')) ], [ sg.Listbox( l, size=(40, 24), enable_events=True, key='LISTA', tooltip= "Selecione uma data para visualizar as gravações disponíveis." ) ], [ sg.Text('LOG de ocorrências disponível AQUI', key='LOG', enable_events=True, font=(sg.DEFAULT_FONT, 9, 'underline'), tooltip="Clique para abrir.") ], [ sg.Text('Copyright ® 2021', key='COPYRIGHT', enable_events=True, font=(sg.DEFAULT_FONT, 8)) ], ] # ------ Menu Definition ------ # menu_def = [ ['File', ['Open config', 'Exit']], ['Help', 'About...'], ] # Main GUI layout coluna_export = [ [ sg.Text('- Exportação -', justification='center', size=(25, 1)) ], [ sg.Button( "Mark In", size=[10, 1], button_color=['white', 'black'], border_width='5', key='MARK_IN', tooltip="Marque a posição de inicio do trecho desejado." ), sg.Button( "Mark Out", size=[10, 1], button_color=['black', 'white'], border_width='5', key='MARK_OUT', tooltip="Marque a posição de fim do trecho desejado.") ], [ sg. In('00:00', size=[11, 1], justification='center', key='IN_TEXT', readonly='True', text_color='black', tooltip="Você não pode editar manualmente esse campo."), sg.In( '00:10', size=[11, 1], justification='center', key='OUT_TEXT', readonly='True', text_color='black', tooltip="Você não pode editar manualmente esse campo.") ], [ sg.FolderBrowse( "Export", key='EXPORT', size=[22, 1], button_color=['green', 'white'], pad=[5, 5], enable_events=True, disabled=True, tooltip="Use para exportar um trecho do audio.") ], ] coluna_esquerda = [ [sg.Menu(menu_def, tearoff=False)], [ sg.Image(filename=DEFAULT_IMG, pad=(0, 5), size=self.player_size, key='VID_OUT') ], [ sg.Text('00:00', key='TIME_ELAPSED'), sg.Slider( range=(0, 1), enable_events=True, resolution=0.0001, disable_number_display=True, background_color='#83D8F5', orientation='h', key='TIME', tooltip= 'Tente utilizar a rolagem do mouse para avançar ou retroceder.' ), # Elements for tracking media length and track counts sg.Text('00:00', key='TIME_TOTAL') ], [ sg.Graph(canvas_size=(self.player_size[0], 20), graph_bottom_left=(-57, 0), graph_top_right=(840, 20), background_color=self.default_bg_color, enable_events=True, key='GRAPH') ], # Button and media information layout (created above) [ sg.Column(buttons_group), sg.Column(info_column), sg.Column(coluna_export, background_color='black', element_justification='center') ] ] principal = [[ sg.Column(coluna_esquerda), sg.Column(direita_column) ]] # Create a PySimpleGUI window from the specified parameters window = sg.Window('SmartLogger', principal, element_justification='center', icon=ICON, finalize=True, return_keyboard_events=True) # Expand the time element so that the row elements are positioned correctly window['TIME'].expand(expand_x=True) return window