[Programación]GUI en python con TkInter...

Nestor Gustavo Magnanego nmagnanego en gmail.com
Mar Ago 3 17:58:28 ART 2010


El 3 de agosto de 2010 16:10, Horacio Castellini
<horacio9573 en yahoo.com.ar>escribió:

> > 8<--------8<--------8<--------8<--------8<--------8<--------8<--------
>
> Retomando el tema de la GUI y viendo que esto que me pasaste es lo que
> busco, te voy haciendo preguntas ya que los tutorial sobre el tema son
> chotos... así que para empezar viene algunas preguntas..
>

Hola, les dejo un link con un muy buen tutorial sobre Python incluido
Tkinter ( esta en ingles ).
http://www.java2s.com/Tutorial/Python/CatalogPython.htm

Saludos.
Néstor

<http://www.java2s.com/Tutorial/Python/CatalogPython.htm>

>
> > from Tkinter import *
> > import tkFileDialog
> > # los demas imports
> >
> > def definir_archivo():
> >     """Selecciona el archivo a procesar"""
> >     global fe
> >     fname = tkFileDialog.askopenfilename()
> >     if fname:
> >         fe.delete(0, END)
> >         fe.insert(0, fname)
>
> Que cuernos estás haciendo acá? "fe" es una lista, en la cual le pasas el
> descriptor (eso es en C :)) ) a un archivo... porque no lo hiciste así
>
> if fname:
>    fe=[]
>    fe.append(fname)
>
>
> >
> > def procesar():
> >     """Procesa el archivo e inserta los
> > resultados en los campos"""
> >     global fe
> >     global res
> >     fname=fe.get()
>
> porque no fname=fe[0]?
>
> >     if not fname:
> >         return
> >     # Aca va el calculo
> >     # yo pondria asi :
> >     # (cum, suav, var, U) =
> > procesarImagen(fname)
> >     # y procesarImagen deberia retornar una tupla
> > con los valores.
> >     # Notar que si procesarImagen da un error, en
> > el mundo de las
> >     # GUI es considerado buena practica hacer un
> > cuadro de dialogo
> >     # explicando que fallo y permitir reintentar.
> > Una forma seria
> >     # retornar (None,)*4 y comprobar esa
> > condicion.
> >     # por ahora simulemos los resultados
> >     import random
> >     cum  = random.random()
> >     suav = random.random()
> >     var  = random.random()
> >     U    = random.random()
> >     # .... fin calculos
> >     for e, val in zip(res,[cum, suav, var, U]):
> >         e.configure(state="normal")
> >         e.delete(0,END)
> >         e.insert(END, val)
> >         e.configure(state="readonly")
> >
>
> Acá directamente me estoy dando la cabeza contra la pared de como cuerno
> pasan estos parámetros al frame...
>
> > def hacerGUI():
> >     global res
> >     global fe
> >
> >     root=Tk()
> >     # frame superior con una etiqueta, una
> > entrada de texto y un
> >     # boton para cargar el archivo
> >     ff=Frame(root)
> >     fl=Label(ff,text="Archivo a analizar:")
> >     fe=Entry(ff)
> >     fb=Button(ff,text="...",
> > command=definir_archivo)
> >     # geometry management
> >     fb.grid(row=0, column=2, padx=3)
> >     fe.grid(row=0, column=1, padx=3, sticky=EW)
> >     fl.grid(row=0, column=0, padx=3)
> >     ff.grid_columnconfigure(1, weight=1)
> >
> >     # Frame de resultados
> >     rf=Frame(root)
> >     res=[]
> >     for i,txt in
> > enumerate(['Entro:','Suavidad:','Var:','U:']):
> >         l = Label(rf,text=txt)
> >         e = Entry(rf, state="readonly",
> > readonlybackground="white",
> >
> > selectbackground="#4a6984")
> >         res.append(e)
> >         l.grid(column=0, row=i,
> > sticky=E, pady=3, padx=12)
> >         e.grid(column=1, row=i,
> > sticky=NSEW, pady=3)
> >     rf.grid_columnconfigure(1,weight=1)
> >     # frame de control/salida
> >     cf=Frame(root)
> >     cg=Button(cf, text="Procesar", width=12,
> > command=procesar)
> >     ce=Button(cf, text="Salir", width=12,
> > command=exit)
> >     # geometry management
> >     cg.grid(column=0, row=0, padx=12, sticky=E)
> >     ce.grid(column=1, row=0, padx=12, sticky=W)
> >     cf.grid_columnconfigure(0, weight=1)
> >     cf.grid_columnconfigure(1, weight=1)
> >
> >     # finalmente le damos al geometry manager los
> > tres frames
> >     ff.pack(fill=X, padx=3, pady=3)
> >     cf.pack(expand=1, fill=BOTH, side=BOTTOM,
> > pady=3, padx=3)
> >     rf.pack(fill=BOTH, expand=1, padx=6, pady=6)
> >     # opciones de la ventana:
> >     # solo permitimos cambiar el tamanio
> > horizontalmente
> >     root.wm_resizable(1,0)
> >     # titulo de la ventana
> >     root.wm_title("SuperProgramejo 1.0")
> >
> > hacerGUI()
> > mainloop()
> > 8<--------8<--------8<--------8<--------8<--------8<--------8<--------
> >
> > Saludos
> > Emiliano
> > _______________________________________________
> > Programacion mailing list
> > Programacion en lugro.org.ar
> > http://lugro.org.ar/mailman/listinfo/programacion
> >
>
>
>
> _______________________________________________
> Programacion mailing list
> Programacion en lugro.org.ar
> http://lugro.org.ar/mailman/listinfo/programacion
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lugro.org.ar/pipermail/programacion/attachments/20100803/23fe7332/attachment.htm>


Más información sobre la lista de distribución Programacion