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

Pablo Moleri pmoleri en gmail.com
Lun Oct 19 10:36:45 EDT 2009


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
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://lists.laptop.org/pipermail/olpc-uruguay/attachments/20091019/6b3bf861/attachment-0001.htm 


More information about the Olpc-uruguay mailing list