Python - NECESITO AYUDA, SABER DONDE ESTOY FALLANDO EN ESTE CODIGO DE PHYTON

 
Vista:
sin imagen de perfil

NECESITO AYUDA, SABER DONDE ESTOY FALLANDO EN ESTE CODIGO DE PHYTON

Publicado por Felipe (1 intervención) el 01/12/2021 14:28:59
from tkinter import LabelFrame, PhotoImage, Label, Scrollbar, StringVar, Tk, LabelFrame, Entry, W, E, N, S, Button, Toplevel, ttk
from tkinter.constants import S
import sqlite3
#from tkinter import *

class agenda:
nombreBd="bd/contactos.db"

def __init__(self, menu):
self.menu=menu
self.menu.title("agenda contactos")
self.createWidgests()

def createWidgests(self):
self.createLogo()
self.createContac()
self.listarContacts()
self.createBottons()
self.barNav()
self.visualizarDatos()
self.areaMensajes()

def createLogo(self):
foto=PhotoImage(file="images/logoSena.png")
label=Label(image=foto)
label.image=foto
label.grid(row=0,column=1, padx=30, pady=10)

def createContac(self):
labelCreateContacts=LabelFrame(self.menu, bg="sky blue", text="Crear Nuevo Contacto", font=("arial", 12,"bold"))
labelCreateContacts.grid(row=0,column=0, padx=15, pady=20)

Label(labelCreateContacts, text="Nombre: ", bg="light blue").grid(row=1, column=1, padx=15, pady=5, sticky=W)
self.nameEntry=Entry(labelCreateContacts)
self.nameEntry.grid(row=1,column=2, padx=15, pady=5)


Label(labelCreateContacts, text="Correo: ", bg="light blue").grid(row=2, column=1, padx=15, pady=5, sticky=W)
self.correoEntry=Entry(labelCreateContacts)
self.correoEntry.grid(row=2,column=2, padx=15, pady=5)

Label(labelCreateContacts, text="Numero Tel: ", bg="light blue").grid(row=3, column=1, padx=15, pady=5,sticky=W)
self.numeroTelEntry=Entry(labelCreateContacts)
self.numeroTelEntry.grid(row=3,column=2, padx=15, pady=5)

Label(labelCreateContacts, text="Ciudad: ", bg="light blue").grid(row=4, column=1, padx=15, pady=5,sticky=W)
self.CiudadEntry=Entry(labelCreateContacts)
self.CiudadEntry.grid(row=4,column=2, padx=15, pady=5)

Label(labelCreateContacts, text="Direccion: ", bg="light blue").grid(row=5, column=1, padx=15, pady=5,sticky=W)
self.DireccionEntry=Entry(labelCreateContacts)
self.DireccionEntry.grid(row=5,column=2, padx=15, pady=5)

Button(labelCreateContacts, text="Guardar Contactos", command=self.eventoCrearContacto, bg="dodger blue", fg="snow").grid(row=6, column=2, padx=20, pady=10)

def listarContacts(self):
self.vistaArbol=ttk.Treeview(height=10, columns=("Correo", "Telefono", "Ciudad", "Dirección"))
self.vistaArbol.grid(row=1, column=0, columnspan=2, padx=20)
self.vistaArbol.heading("#0", text="Nombre", anchor=W)
self.vistaArbol.heading("Correo", text="Correo", anchor=W)
self.vistaArbol.heading("Telefono", text="Telefono", anchor=W)
self.vistaArbol.heading("Ciudad", text="Ciudad", anchor=W)
self.vistaArbol.heading("Dirección", text="Dirección", anchor=W)

def createBottons(self):
Button(self.menu, text="BORRAR ELEMENTO", command=self.eventoBorrar, bg="red", fg="snow").grid(row=2, column=0, padx=15, pady=10, sticky=W)
Button(self.menu, text="EDITAR ELEMENTO", command=self.eventoEditar, bg="Dodgerblue4", fg="snow").grid(row=2, column=1, padx=15, pady=10, sticky=E)

def barNav(self):
self.barraVertical=Scrollbar(self.menu, orient="vertical", command=self.vistaArbol.yview)
self.barraVertical.grid(row=1, column=2, sticky=N+S)

def queryData(self, consulta, parametros=()):
with sqlite3.connect(self.nombreBd) as conexion:
print(conexion)
print("La conexion ha sido exitosa")
cursor=conexion.cursor()
RespuestaConsulta=cursor.execute(consulta, parametros)
conexion.commit()
return RespuestaConsulta


def visualizarDatos(self):
valores=self.vistaArbol.get_children()
for valor in valores:
self.vistaArbol.delete(valor)
consulta="SELECT * FROM lista_contactos"
entradaDatos=self.queryData(consulta)
for fila in entradaDatos:
self.vistaArbol.insert("", "0", text=fila[1], values=(fila[2], fila[3], fila[4], fila[5]))

def areaMensajes(self):
self.mensaje=Label(self.menu, text="Bienvenido", font=("arial", 12, "bold"), fg="red")
self.mensaje.grid(row=0, column=1, sticky=W+S,pady=15)

def eventoCrearContacto(self):
self.crearContacto()

def eventoBorrar(self):
self.borrarContacto()

def eventoEditar(self):
self.editarContacto()

def crearContacto(self):
if self.validarDatos():
try:
consulta= "INSERT INTO lista_contactos VALUES (NULL, ?, ?, ?, ?, ?)"
parametros=(self.nameEntry.get(), self.correoEntry.get(), self.numeroTelEntry.get(), self.CiudadEntry.get(), self.DireccionEntry.get())
self.queryData(consulta, parametros)
self.mensaje["text"]="contacto {} creado".format(self.nameEntry.get())
self.nameEntry.delete(0, "end")
self.correoEntry.delete(0, "end")
self.numeroTelEntry.delete(0, "end")
self.CiudadEntry.delete(0, "end")
self.DireccionEntry.delete(0, "end")
self.visualizarDatos()
except:
self.mensaje["text"]="HUBO UN ERROR EN LA EJECUCION SQL"
else:
self.mensaje["text"]="CAMPOS INVALIDOS"


def borrarContacto(self):
self.mensaje["text"]="BORRANDO CONTACTO"

def editarContacto(self):
self.mensaje["text"]=""
try:
self.vistaArbol.item(self.vistaArbol.selection())["text"][0]
except:
self.mensaje["text"]="NO HAY SELECCION PARA EDITAR"
return
self.ventanaEdicion()

def ventanaEdicion(self):
nombre=self.vistaArbol.item(self.vistaArbol.selection())["text"]
numeroActual=self.vistaArbol.item(self.vistaArbol.selection())["values"][1]
self.ventanaEditar=Toplevel()
self.ventanaEditar.title("Edicion de contacto")
self.ventanaEditar.configure(bg="cyan4")
Label(self.ventanaEditar, text="Nombre: ", bg="cyan4").grid(row=0, column=0, padx=15, pady=5, sticky=W)
Entry(self.ventanaEditar, textvariable=StringVar(self.ventanaEditar, value=nombre), state="readonly").grid(row=0, column=1)
Label(self.ventanaEditar, text="Numero actual: ", bg="cyan4").grid(row=1, column=0, padx=15, pady=5, sticky=W)
Entry(self.ventanaEditar, textvariable=StringVar(self.ventanaEditar, value=nombre), state="readonly").grid(row=1, column=1)
Label(self.ventanaEditar, text="Nuevo numero: ", bg="cyan4").grid(row=2, column=0, padx=15, pady=5, sticky=W)
nuevoNumero=Entry(self.ventanaEditar)
nuevoNumero.grid(row=2, column=1)

Button(self.ventanaEditar, text="Editar información", command=lambda: self.editarItem(nombre, numeroActual, nuevoNumero.get())).grid(row=3, column=1,padx=15, pady=5, sticky=E)

def editarItem(self, nombre, numeroActual, nuevoNumero):
consulta="UPDATE lista_contactos SET telefono=? WHERE telefono=? AND nombre=?"
parametros=(nuevoNumero, numeroActual, nombre)
self.queryData(consulta, parametros)
self.ventanaEditar.destroy()
self.mensaje["text"]="CONTACTO EDITADO"
self.visualizarDatos()

def validarDatos(self):
validar=False
if (len(self.nameEntry.get())!=0 and len(self.correoEntry.get())!=0 and len(self.numeroTelEntry.get())!=0 and len(self.CiudadEntry.get())!=0 and len(self.DireccionEntry.get())!=0):
validar=True
if self.correoEntry.get().find("@")==-1:
validar=False
if self.correoEntry.get().find(".")==-1:
validar=False

return validar



if __name__ == "__main__":
menu=Tk()
aplicacion=agenda(menu)
menu.mainloop()
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder