I need support. In the application that I am developing I put a button to open a top level window with the fields that my table has MySQL and so modify any record already created, in turn I want that top level appears a drop-down menu to select the element of the table to modify but at the time that I press the "Modify" button, the application is overwhelmed and stops responding. Why could this be happening? My code is as follows:
from Tkinter import *
import MySQLdb
import os
import tkMessageBox
import csv
#ventana
ventana = Tk()
ventana.title("Erick Finn's Reporter")
ventana.configure(background = "brown")
def insertar():
Id = int()
d1 = fecha_text.get()
d2 = usuario_text.get()
d3 = aplicacion_text.get()
d4 = folio_text.get()
d5 = status_text.get()
d6 = inputway_text.get()
conn = MySQLdb.connect(host = "127.0.0.1", user = "root", passwd = "unitec", db = "efrias002")
cursor = conn.cursor()
sql ='INSERT INTO base17 VALUES("%s","%s", "%s", "%s", "%s", "%s","%s")'%(Id, d1, d2, d3, d4, d5, d6)
try:
cursor.execute(sql)
conn.commit()
conn.close()
tkMessageBox.showinfo("Info","Registro Agregado Correctamente")
except:
conn.rollback()
conn.close()
def mostrar():
conn = MySQLdb.connect(host = "127.0.0.1", user = "root", passwd = "unitec", db = "efrias002")
cursor = conn.cursor()
cursor.execute("SELECT * FROM base17")
data = cursor.fetchall()
for item in data:
list1.insert(END,item)
conn.close()
def buscar():
res = busqueda_text.get()
conn = MySQLdb.connect(host = "127.0.0.1", user = "root", passwd = "unitec", db = "efrias002")
cursor = conn.cursor()
cursor.execute("SELECT * FROM base17 WHERE usuario = %s",[res])
for item in cursor:
list1.insert(END,item)
conn.close()
def buscar2():
res2 = busqueda2_text.get()
conn = MySQLdb.connect(host = "127.0.0.1", user = "root", passwd = "unitec", db = "efrias002")
cursor = conn.cursor()
cursor.execute("SELECT * FROM base17 WHERE fecha = %s",[res2])
for item in cursor:
list1.insert(END,item)
conn.close()
def generar():
conn = MySQLdb.connect(host = "127.0.0.1", user = "root", passwd = "unitec", db = "efrias002")
cursor = conn.cursor()
cursor.execute("SELECT * FROM base17")
rows = cursor.fetchall()
fp = open('file.csv', 'w')
myFile = csv.writer(fp)
myFile.writerows(rows)
fp.close()
conn.close()
def win2 ():
t1 = Toplevel(bg="Brown")
t1.title("Modificar Datos")
t1.geometry('600x400')
t1.focus_set()
t1.grab_set()
t1.transient(master=ventana)
inf=StringVar()
t2=Entry(t1,textvariable=inf)
t2.grid(row=3,column=1)
inf2=StringVar()
t3=Entry(t1,textvariable=inf2)
t3.grid(row=3,column=3)
inf3=StringVar()
t4=Entry(t1,textvariable=inf3)
t4.grid(row=3,column=5)
t2l = Label(t1,text='Fecha',bg="Cyan2")
t2l.grid(row=0, column=1)
t3l = Label(t1,text='Usuario',bg="Cyan2")
t3l.grid(row=0, column=3)
t4l = Label(t1,text='Aplicacion',bg="Cyan2")
t4l.grid(row=0, column=5)
#menu despleglable
OptionList = ['Fecha','Usuario', 'Aplicacion']
listin = StringVar()
listin.set(OptionList[0])
men = OptionMenu(t1,listin, *OptionList)
men.pack()
def borrar():
list1.delete(0,END)
def salir():
ventana.destroy()
pic = PhotoImage(file = "pwc2.gif")
wid = Label(ventana,image = pic)
wid.pack()
wid.grid(row=2, column=11,rowspan=3)
l1=Label(ventana, fg= "Blue",bg="Orange",text = "Fecha")
l1.grid(row=0,column=2)
l2=Label(ventana,fg= "Blue",bg="Orange",text = "Usuario")
l2.grid(row=0,column=3)
l3=Label(ventana, fg="Blue",bg="Orange", text = "Aplicacion")
l3.grid(row=2,column=2)
l4=Label(ventana,fg = "Blue",bg="Orange",text = "Folio Ticket")
l4.grid(row=2,column=3)
l5=Label(ventana,fg="Blue", bg="Orange",text = "Status")
l5.grid(row=4,column=2)
l6=Label(ventana,fg = "Blue",bg="Orange", text = "Input Way")
l6.grid(row=4,column=3)
l7=Label(ventana,font = "Comic",bg="DeepSkyBlue" ,text = "Resultados")
l7.grid(row=29,column=2,columnspan=3)
l8=Label(ventana,fg = "Blue",bg="Orange",text = "Busqueda por usuario")
l8.grid(row=2,column=4)
l9=Label(ventana,fg = "Blue",bg="Orange", text = "Busqueda por fecha")
l9.grid(row=4,column=4)
#campos de entrada
fecha_text=StringVar()
e1=Entry(ventana,textvariable=fecha_text)
e1.grid(row=1,column=2)
usuario_text=StringVar()
e2=Entry(ventana,textvariable=usuario_text)
e2.grid(row=1,column=3)
aplicacion_text=StringVar()
e3=Entry(ventana,textvariable=aplicacion_text)
e3.grid(row=3,column=2)
folio_text=StringVar()
e4=Entry(ventana,textvariable=folio_text)
e4.grid(row=3,column=3)
status_text=StringVar()
e5=Entry(ventana,textvariable=status_text)
e5.grid(row=5,column=2)
inputway_text=StringVar()
e6=Entry(ventana,textvariable=inputway_text)
e6.grid(row=5,column=3)
busqueda_text=StringVar()
e7=Entry(ventana,textvariable=busqueda_text)
e7.grid(row=3,column=4)
busqueda2_text=StringVar()
e8=Entry(ventana,textvariable=busqueda2_text)
e8.grid(row=5,column=4)
#definir listbox
list1 = Listbox(ventana,bg = "white",height=15, width=90)
list1.grid(row=30, column=2, columnspan=4)
#crear scroll
sb1=Scrollbar(ventana)
sb1.grid(row=30,column=6)
list1.configure(yscrollcommand=sb1.set)
sb1.configure(command=list1.yview)
#crear botones
b1=Button(ventana, text="Crear nuevo registro",bg = "Light Green", command=insertar)
b1.pack()
b1.grid(row=24 ,column=11)
b2 = Button(ventana, text="Mostrar Registros",bg = "Orange", command=mostrar)
b2.pack()
b2.grid(row=26, column=11)
b3 = Button(ventana, text="Buscar por Usuario",bg = "Yellow", command=buscar)
b3.pack()
b3.grid(row=27, column=11)
b4 = Button(ventana, text="Limpiar Consulta",bg = "Light Blue", command=borrar)
b4.pack()
b4.grid(row=29, column=11)
b5 = Button(ventana, text="Salir de la App",bg = "Red",fg="Yellow", command=salir)
b5.pack()
b5.grid(row=31, column=0)
b6 = Button(ventana, text="Crear CSV",bg = "Light Gray", command=generar)
b6.pack()
b6.grid(row=30, column=11)
b7 = Button(ventana, text="Buscar por Fecha",bg = "SeaGreen1", command=buscar2)
b7.pack()
b7.grid(row=28, column=11)
b8 = Button(ventana,text="Modificar Datos",bg="Cyan2", command=win2)
b8.pack()
b8.grid(row=25,column=11)
ventana.mainloop()