Mostrar pantallas en Tkinter
Ekaitz Lizundia
elizundia en fitbak.com
Vie Oct 20 09:21:32 CEST 2006
Muchisimas gracias Chema,
me ha servido de gran ayuda.
> Chema Cortes escribió:
>> El 19/10/06, Ekaitz Lizundia<elizundia en fitbak.com> escribió:
>>> Muchas gracias, ya he intentado con toplevel, la cuestion es que lo que
>>> deberia de ir en esa nueva pantalla esta en otro archivo .py y eso no
>>> se
>>> como ponerlo en la principal donde pongo el toplevel, no se si me
>>> explico
>>> bien.
>>> Si me pudieras poner un ejemplo sencillo te agradeceria mucho.
>>>
>>> El problema es:
>>> tengo 2 archivos, 1.py donde esta la ventana principal y donde pondre
>>> asociado a un boton que construya una nueva ventana que sera el
>>> toplevel.
>>> Ese toplevel cargara lo que esta en el otro archivo 2.py.
>>
>> De prisa y mal:
>
> Como habrás comprobado, el código estaba bastante mal. En lugar de
> apañar el código (bastante sencillo de arreglar), te envío mejor la
> forma en la que yo creo se debería hacer: usando orientación a objetos:
>
>
> #fichero_2.py
> from Tkinter import *
>
> class Child(Frame):
> def __init__(self,master=None):
> Frame.__init__(self,master)
> self.pack(expand=True)
> Label(self,text="Prueba").pack()
>
>
> #fichero_1.py
> from Tkinter import *
>
> from fichero_2 import Child
>
> class Main(Frame):
> def __init__(self,master=None):
> Frame.__init__(self,master)
> self.pack(expand=True)
> self.master.title("Ventana Principal")
> Button(self,
> text="Abrir ventana",
> command=self.abrir_ventana
> ).pack(expand=True)
>
> def abrir_ventana(self):
> w=Toplevel(self.master)
> w.title("Hijo")
> w.geometry("200x100")
> Child(w)
>
> Main().mainloop()
>
> ###Fuera de programa (explorando otras posibilidades)
> Child().mainloop()
>
> root=Tk()
> Child(Main(root))
> root.mainloop()
>
> root=Tk()
> Child(Main(root))
> root.mainloop()
>
> root=Tk()
> Child(root)
> Child(root)
> Main(root)
> Child(root)
> Child(root)
> Main(root)
> root.mainloop()
>
>
> Si añades estas últimas líneas al fichero principal podrás ver las
> ventajas de usar siempre con Frames en lugar de ventanas directamente.
>
> --
> Chema Cortés (py en ch3m4.org)
> "Proudly made on earth by generic humanoid carbon units"
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es
>
Más información sobre la lista de distribución Python-es