[Olpc-uruguay] Ayuda para remover un widget !!

Flavio Danesse fdanesse en gmail.com
Lun Oct 19 11:17:18 EDT 2009


excelente, ahora si funciona, no terminaba de entender el self, ahora creo
que me cayó la ficha.

Gracias !!!




El 19 de octubre de 2009 13:07, Pablo Moleri <pmoleri en gmail.com> escribió:

> Si, es así.
> Todo lo que empieza con self. es de instancia.
> Los atributos de clase se definen sin self. pero fuera de las funciones
> (sinó serían variables comunes y corrientes.
>
> class Ejemplo():
>
>     atributo_de_clase = 0
>
>     def funcion_de_instancia(self, par):
>         self.atributo_de_instancia = 0
>         variable_comun_y_corriente = 2
>
> En Python "TODO" es un objeto, como las funciones también son objetos las
> podés pasar por parámetro o asignar a variables:
>
> if __name__ = "main":
>    ej = Ejemplo()
>    funcion = ej.funcion_de_instancia
>    funcion("a") # Esta línea ejecuta la función
> ej.funcion_de_instancia("a")
>
> Las funciones de clase (métodos estáticos) generalmente no se usan, y hay
> que usar un recurso que no me acuerdo como era para poder declararlas.
>
>
> Saludos
>
> 2009/10/19 Flavio Danesse <fdanesse en gmail.com>
>
>> cuando declaras una variable mediante self.etc la estás guardadndo como
>> atributo de clase de instancia ?
>> Haces lo mismo con las funciones o métodos ?
>> Al no ponerles self.etc son variables y metodos de clase y no de
>> instancia?
>>
>>
>>
>>
>> El 19 de octubre de 2009 12:36, Pablo Moleri <pmoleri en gmail.com>escribió:
>>
>>> Supongamos que tenés un contenedor principal que hereda de HBox:
>>>
>>> class Contenedor(gtk.HBox):
>>>
>>>    def __init__(self):
>>>      ...
>>>      boton = gtk:Button()
>>>      self.add(button)
>>>      button.connect("clicked", self.atender)
>>>      ...
>>>
>>>      # me guardo como atributo una referencia al widget que va a mostrar
>>> el archivo
>>>      self.contenedor_imagen = gtk...
>>>      self.add(contenedor_imagen)
>>>      ...
>>>
>>>   self.atender():
>>>      # código para seleccionar archivo
>>>      # código para cargar el archivo en self.contenedor_imagen
>>>      ...
>>>
>>> if __name__ = "main":
>>>     gtk.Contenedor()
>>>     gtk.main()
>>>
>>> Entonces al botón, en vez de conectarle una función propia, le conectás
>>> una función del contenedor principal, de esa forma podés tener referencias a
>>> los otros elementos que precisás.
>>>
>>> Saludos,
>>> Pablo
>>>
>>>
>>> 2009/10/19 Flavio Danesse <fdanesse en gmail.com>
>>>
>>>> No funciona, estoy bastante confundido, a ver si me pueden aclarar un
>>>> par de cosas:
>>>>
>>>> Supongamos que tengo una clase que crea una interfase gráfica con varios
>>>> contenedores y controles.
>>>>
>>>> ¿ Como defino métodos de instancia para poder acceder a sus controles
>>>> desde fuera de la clase ?
>>>>
>>>> No logro encontrar la forma correcta de definir estos metodos o
>>>> funciones.
>>>> Lo que hago basicamente es instanciar la clase, esta crea toda una
>>>> interfase.
>>>> En esta interfase tengo un boton que al presionarlo me habre un cuadro
>>>> de dialogo FileSelection, obviamente, al seleccionar el archivo que deseo
>>>> abrir, debo cargarlo en un control que está en la interfase original pero no
>>>> logro hacerlo, porque no se como acceder al control de la interfase
>>>> original.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> El 19 de octubre de 2009 11:55, Pablo Moleri <pmoleri en gmail.com>escribió:
>>>>
>>>> Hola,
>>>>>
>>>>> Supongo que lo que te está faltando es hacer remove() con la referencia
>>>>> al calendario original.
>>>>>
>>>>> O sea, si agregaste así:
>>>>>   mi_calendario = gtk.Calendar()
>>>>>   mi_frame = gtk.Frame()
>>>>>
>>>>> entonces deberías eliminarlo usando la misma variable:
>>>>>   mi_frame.remove(mi_calendario)
>>>>>
>>>>> En caso de que no tuvieras la referencia al calendario original,
>>>>> podrías hacer algo así:
>>>>>
>>>>>   for child in mi_frame.get_children():
>>>>>       mi_frame.remove(child)
>>>>>
>>>>> En realidad frame puede tener un único hijo, así que ese for va a
>>>>> iterar una sola vez.
>>>>>
>>>>> Espero que te sea de ayuda,
>>>>> Saludos!
>>>>>
>>>>> 2009/10/19 Flavio Danesse <fdanesse en gmail.com>
>>>>>
>>>>>>  *Hola gente, necesito una ayudita:*
>>>>>>
>>>>>>
>>>>>>    - En una interfaz gráfica tengo un gtk.Frame y dentro tengo un
>>>>>>    gtk.Calendar.
>>>>>>    - Quiero quitar el calendar y poner otro control dentro del frame.
>>>>>>    - Para hacer esto implementé una funcion que devuelve el frame
>>>>>>    llamada get_Frame.
>>>>>>    - En otra función, llamé a get_Frame y con el metodo remove de
>>>>>>    gtk.Container intenté quitar el calendario, pero me devuelve error porque
>>>>>>    segun dice, el metodo está recibiendo una instancia de objeto.
>>>>>>
>>>>>>
>>>>>> No logro encontrar como hacerlo, a ver si alguien me tira un cable.
>>>>>>
>>>>>> _______________________________________________
>>>>>> Olpc-uruguay mailing list
>>>>>> Olpc-uruguay en lists.laptop.org
>>>>>> http://lists.laptop.org/listinfo/olpc-uruguay
>>>>>>
>>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Olpc-uruguay mailing list
>>>>> Olpc-uruguay en lists.laptop.org
>>>>> http://lists.laptop.org/listinfo/olpc-uruguay
>>>>>
>>>>>
>>>>
>>>> _______________________________________________
>>>> Olpc-uruguay mailing list
>>>> Olpc-uruguay en lists.laptop.org
>>>> http://lists.laptop.org/listinfo/olpc-uruguay
>>>>
>>>>
>>>
>>> _______________________________________________
>>> Olpc-uruguay mailing list
>>> Olpc-uruguay en lists.laptop.org
>>> http://lists.laptop.org/listinfo/olpc-uruguay
>>>
>>>
>>
>> _______________________________________________
>> Olpc-uruguay mailing list
>> Olpc-uruguay en lists.laptop.org
>> http://lists.laptop.org/listinfo/olpc-uruguay
>>
>>
>
> _______________________________________________
> Olpc-uruguay mailing list
> Olpc-uruguay en lists.laptop.org
> http://lists.laptop.org/listinfo/olpc-uruguay
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://lists.laptop.org/pipermail/olpc-uruguay/attachments/20091019/78ec77c2/attachment-0001.htm 


More information about the Olpc-uruguay mailing list