[pyar] [Fwd: Re: Uso de variable Global]
craf
prog en vtr.net
Vie Dic 3 10:37:04 ART 2010
--------- Mensaje reenviado --------
> De: Daniel Moisset <dmoisset en machinalis.com>
> Reply-to: Python Argentina <pyar en python.org.ar>
> Para: Python Argentina <pyar en python.org.ar>
> Asunto: Re: [pyar] Uso de variable Global
> Fecha: Fri, 3 Dec 2010 09:53:58 -0300
>
> 2010/12/2 craf <prog en vtr.net>:
> > Hola.
> >
> >
> > Estoy probando Tkinter y escribí este pequeño código el cual crea un
> > formulario con un textbox y un botón. Al ingresar un dato en el textbox
> > y presionar el botón, se imprime en la consola el valor.
> >
> >
> > Funciona, pero tuve que hacer uso de una variable Global.
> >
> > Pregunta: ¿Es valida esta forma?, ¿Se puede hacer de otra forma, sin
> > ocuparla?.
> > Nota: Necesariamente la funcion muestra debe estar fuera de la clase App
>
> La restriccion en esa nota es rara, sino podnes la variable y la
> funcion dentro de la clase y queda mucho mas limpito. realmente es
> necesario.
>
> Si lo es, capaz podes compartir la instancia igual. No se bien por que
> no entiendo el motivo de tu restriccion:
>
>
> from Tkinter import *
>
> def muestra():
> print(app.valor.get())
>
> class App:
> def __init__(self,master):
> self.valor = StringVar()
> e = Entry(master,textvariable=self.valor).pack()
> b = Button(master,text='Mostrar',command=muestra).pack()
>
> master = Tk()
> app = App(master)
> master.mainloop()
> _______________________________________________
> 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/
Hola.
El motivo por el que lo quiero así, es para separar la creación de la
interfaz gráfica en un modulo y el código de la aplicación en otro.
El código anterior debiera quedar así sin uso de variable Global:
----CODE:------------------------------------------------------------
from Tkinter import *
def muestra(valor):
print(valor.get())
class App:
def __init__(self,master):
valor = StringVar()
e = Entry(master,textvariable=valor).pack()
b =
Button(master,text='Mostrar',command=(lambda:muestra(valor))).pack()
master = Tk()
app = App(master)
master.mainloop()
--------------------------------------------------------------------
Saludos.
CRAF.
More information about the pyar
mailing list