I am trying to develop a graphical interface for my MySQL database with Python 2.7 TKinter. I was checking the tkinter documentation as well as other sources but I can not get the records in my table to be displayed inside the list box instead of in the python shell. I'm new with TKinter. How can I do it?
My code is as follows:
from Tkinter import *
import MySQLdb
#ventana
ventana = Tk()
ventana.title("Erick Finn,s Reporter")
var = StringVar()
var2 = StringVar()
def fun1():
fun1 = str(usuario_text.get())
return var.set(fun1)
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()
print " ", sorted (data)
conn.close()
return var2.set(mostrar)
l1=Label(ventana, text = "Usuario")
l1.grid(row=0,column=0)
l2=Label(ventana,text = "Numero de Ticket")
l2.grid(row=2,column=0)
l2=Label(ventana,text = "Aplicacion")
l2.grid(row=4,column=0)
l2=Label(ventana,text = "Problema")
l2.grid(row=6,column=0)
#campos de entrada
usuario_text=StringVar()
e1=Entry(ventana,textvariable=usuario_text)
e1.grid(row=0,column=1)
ticket_text=StringVar()
e2=Entry(ventana,textvariable=ticket_text)
e2.grid(row=2,column=1)
aplicacion_text=StringVar()
e3=Entry(ventana,textvariable=aplicacion_text)
e3.grid(row=3,column=1)
problema_text=StringVar()
e4=Entry(ventana,textvariable=problema_text)
e4.grid(row=4,column=1, rowspan=2)
#definir listbox
list1 = Listbox(ventana,listvariable = var2,height=6, width=35)
list1.grid(row=30, column=10, columnspan=3)
#crear scroll
sb1=Scrollbar(ventana)
sb1.grid(row=30,column=14)
list1.configure(yscrollcommand=sb1.set)
sb1.configure(command=list1.yview)
#crear botones
b1=Button(ventana, text="Buscar" ,command=fun1)
b1.pack()
b1.grid(row=31 ,column=10)
b2 = Button(ventana, text="Mostrar", command=mostrar)
b2.pack()
b2.grid(row=31, column=11)
ventana.mainloop()
Likewise when clicking the "Show" button, it displays the data of the table in the python shell and in the list box it only displays:
(Function "Mostrar" at 0x02A6E970>)