Código:import ttkbootstrap as tbfrom tkinter import messagebox import pyodbc # Escolhendo Tema app = tb.Window(themename="superhero") # Criando um titulo app.title("MuOnline App") # Chamando notebook na janela app meu_noteboock = tb.Notebook(app) meu_noteboock.pack(padx=10, pady=10) # Criando os notebook cadastro = tb.Frame(meu_noteboock) ranking = tb.Frame(meu_noteboock) # Ativando os notebook meu_noteboock.add(cadastro, text='Cadastro') meu_noteboock.add(ranking, text='Ranking') # Compara dos dados na entry e se for valido faz um insert no sql def comparacao(): nome = nome_cadastro.get() nick = nick_cadastro.get() senha = senha_cadastro.get() conf_senha = confirmar_senha_cadastro.get() email = email_cadastro.get() conf_email = confirmar_email_cadastro.get() telefone = cadastro_telefone.get() p_id = person_id.get() if nome == '' or nick == '' or senha == '' or conf_senha == '' or email == '' or conf_email == '' or p_id == ''\ or telefone == '': messagebox.showinfo('Atenção', 'Por favor não deixe campos vazios!') elif check_var.get() == 'off': messagebox.showinfo('Atenção', 'Confirme a caixa!') else: if senha_cadastro.get() != confirmar_senha_cadastro.get(): messagebox.showerror('Atenção', 'Atenção SENHA não correspondem!') return if email_cadastro.get() != confirmar_email_cadastro.get(): messagebox.showerror('Atenção', 'Atenção E-MAIL não correspondem!') return else: server = '(local)' database = 'MuOnline' username = 'sa' password = '123456' driver = '{SQL Server}' conn = pyodbc.connect( 'DRIVER=' + driver + ';SERVER=' + server + ';DATABASE=' + database + ';UID=' + username + ';PWD=' + password) cursor = conn.cursor() # Define a instrução SQL para inserir um novo registro na tabela MEMB_INFO sql = "INSERT INTO MEMB_INFO (memb___id, memb__pwd, memb_name, mail_addr, sno__numb, bloc_code, " \ "ctl1_code) VALUES (?, ?, ?, ?, ?, ?, ?)" # Define os valores a serem inseridos values = (nick, int(senha), nome, email, telefone, '0', '0') # Executa a instrução SQL com os valores fornecidos cursor.execute(sql, values) # Confirma as alterações no banco de dados conn.commit() conn.close() messagebox.showinfo('Parabéns', 'Cadastro realizado com sucesso!') nome_cadastro.delete(0, tb.END) nick_cadastro.delete(0, tb.END) senha_cadastro.delete(0, tb.END) confirmar_senha_cadastro.delete(0, tb.END) email_cadastro.delete(0, tb.END) confirmar_email_cadastro.delete(0, tb.END) cadastro_telefone.delete(0, tb.END) person_id.delete(0, tb.END) nome_cadastro.focus() # Validar máximo de caracteres def validar_entrada(valor): if len(valor) > 10: return False else: return True # Validar máximo de caracteres para email def validar_email(valor): if len(valor) > 50: return False else: return True # Validar máximo de caracteres para personal Id def validar_id(valor): if len(valor) > 7: return False else: return True # Validar máximo de caracteres para telefone def validar_tel(valor): if len(valor) > 11: return False else: return True # Criando Labels tb.Label(master=cadastro, text='Nome').grid(column=0, row=0, pady=10, sticky="e") tb.Label(master=cadastro, text='Nick').grid(column=0, row=1, pady=10, sticky="e") tb.Label(master=cadastro, text='Senha').grid(column=0, row=2, pady=10, sticky="e") tb.Label(master=cadastro, text='Confirmar Senha').grid(column=0, row=3, pady=10, sticky="e") tb.Label(master=cadastro, text='E-mail').grid(column=0, row=4, pady=10, sticky="e") tb.Label(master=cadastro, text='Confirmar E-mail').grid(column=0, row=5, pady=10, sticky="e") tb.Label(master=cadastro, text='Telefone').grid(column=0, row=6, pady=10, sticky="e") tb.Label(master=cadastro, text='Personal Id').grid(column=0, row=7, pady=10, sticky="e") # Checar a variavel check_var = tb.StringVar() check_var.set("off") # Criando Entradas nome_cadastro = tb.Entry(master=cadastro, validate="key", width=30) nick_cadastro = tb.Entry(master=cadastro, validate="key", width=30) senha_cadastro = tb.Entry(master=cadastro, validate="key", show='*', width=30) confirmar_senha_cadastro = tb.Entry(master=cadastro, validate="key", show='*', width=30) email_cadastro = tb.Entry(master=cadastro, validate="key", width=30) confirmar_email_cadastro = tb.Entry(master=cadastro, validate="key", width=30) cadastro_telefone = tb.Entry(master=cadastro, validate="key", width=30) person_id = tb.Entry(master=cadastro, validate="key", width=30) checkbox = tb.Checkbutton(master=cadastro, text="Não sou robo!", variable=check_var, onvalue="on", offvalue="off") # Criando Botão button = tb.Button(master=cadastro, text="CADASTRA-SE", command=comparacao) # Confirgurando Coluna e linha das entradas nome_cadastro.grid(column=1, row=0, padx=10, pady=10) nick_cadastro.grid(column=1, row=1, padx=10, pady=10) senha_cadastro.grid(column=1, row=2, padx=10, pady=10) confirmar_senha_cadastro.grid(column=1, row=3, padx=10, pady=10) email_cadastro.grid(column=1, row=4, padx=10, pady=10) confirmar_email_cadastro.grid(column=1, row=5, padx=10, pady=10) cadastro_telefone.grid(column=1, row=6, padx=10, pady=10) person_id.grid(column=1, row=7, padx=10, pady=10) checkbox.grid(column=0, row=8, columnspan=2, padx=10, pady=10) button.grid(column=0, row=9, columnspan=2, padx=10, pady=10) # Configurando validação de maximo de caracteres nome_cadastro.configure(validatecommand=(nome_cadastro.register(validar_entrada), "%P")) nick_cadastro.configure(validatecommand=(nick_cadastro.register(validar_entrada), "%P")) senha_cadastro.configure(validatecommand=(senha_cadastro.register(validar_entrada), "%P")) confirmar_senha_cadastro.configure(validatecommand=(confirmar_senha_cadastro.register(validar_entrad a), "%P")) email_cadastro.configure(validatecommand=(email_cadastro.register(validar_email), "%P")) confirmar_email_cadastro.configure(validatecommand=(confirmar_email_cadastro.register(validar_email), "%P")) cadastro_telefone.configure(validatecommand=(cadastro_telefone.register(validar_tel), "%P")) person_id.configure(validatecommand=(person_id.register(validar_id), "%P")) app.mainloop()