[pyar] Consulta Tkinter

Roberto Gomez rgomez en autotrol.com.ar
Vie Mayo 9 09:59:44 ART 2014


patricio tula wrote:
> Hola,
> Estoy hace un tiempo usando este módulo para hacer una interfaz gráfica
> para un programa de control de prestamos de herramientas del laboratorio
> abierto (LABI) de la facultad de ingeniería de la UBA. La parte gráfica
> ya la tengo andando pero surge un error que no le encuentro explicación
> y solo puedo solucionarlo con fuerza bruta.
>
> El fragmento de código que falla es el siguiente:
> /
> def DevolucionesHerramientas():
>      Devoluciones = Tk()
>      Devoluciones.title("LABI-//Sistema de control de
> prestamos-Devoluciones")
>       L=Label(Devoluciones,text="//Herramientas:").grid(row=0,//column=0)
>       def Devolver():
>           Devoluciones.destroy()
>           Devolver = Tk()
> *Devolver.geometry("200x100")*
>           Devolver.title("Cancelacion de prestamo")
>           L1=Label(Devolver,text="Por:")//.pack()
>           L2=Label(Devolver,text="//Herramientas devueltas:").pack()
>           Devolver.mainloop()
> DevolverBoton=Button(//Devoluciones,text="DEVOLVER",
> command=Devolver).grid(row=2,//column=1)
> Devoluciones.mainloop()/
>
>
> El error que tira es el siguiente:
> /
> File "GUI.py", line 41
>      Devolver.geometry("200x100")
>      ^
> IndentationError: unexpected indent
> /
> La línea que falla es la que esta en negrita en el código. Lo que
> resulta extraño es que si le borro un TAB, o sea queda con 1 solo TAB,
> el error desaparece. En el resto del código aparece varías veces este
> error. Alguién tiene idea que puede ser? en que le estoy pifiando?
>
> Saludos,
> Pato
>
>
>
>
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina - http://www.usla.org.ar
>
Hola Patricio,
lo que me parece que está pasando es que dentro de la función Devolver 
estás haciendo otra instancia de Tk() que también se llama Devolver, por 
lo que creo que es un conflicto de nombres.

Tema aparte. No es común, por lo menos nunca lo ví, tener dos instancias 
de Tk dentro de la misma aplicación, salvo que uses threads, cosa que 
tampoco te puedo garantizar ya que tk usa algunas variables globales.
El tema es que mainloop() es bloqueante por lo que sólo se va a ejecutar 
uno sólo de los loops.
Lo que normalmente se hace para estos casos es tener una sóla instancia 
de tk con un único mainloop y usar Toplevel(s).

HTH
rober






More information about the pyar mailing list