[pygtk] guardar objetos en los widget

Beni camontuyu en yahoo.es
Mie Jul 2 17:48:09 CEST 2008


2008/7/2 Rafael Villar Burke <pachi en rvburke.com>:

> Beni wrote:
> > Algo de eso suponía,... pero pensaba que gtk tendría algún método para
> > guardar información del usuario.
> >
> Lo tiene. Los controles y otros objetos de pygtk son del tipo gobject,
> con lo que puedes usar los métodos set_data y get_data para lo que quieres:
>
> http://www.pygtk.org/docs/pygobject/class-gobject.html#method-gobject--set-data
> > Ya se que estamos con un lenguaje dinámico, pero no me parece una buena
> > forma modificar las objetos en tiempo de ejecución, a no ser que sea
> > necesario, claro.
> >
> ¿Por qué no te parece una buena idea?. ¿Cómo piensas aportar los datos
> si no vas a entregarlos en el momento de la ejecución teniendo en cuenta
> que python no es un lenguaje compilado?.
>
> Saludos,
>
> Rafael Villar Burke
>

No me parece una buena idea porque hace el código un poco ilegible y dificil
de mantener.

Imagina que tiene una clase persona con sus propiedades.

class Persona:
   def __init__(self):
       self.nombre = ""
       self.apellidos = ""

Si ahora quiero indicar que una persona puede llevar una serie de cosas.
Podría hacer:

p = Persona()
p.libro = Libro()
p.boli = Boligrafo()

y funcionaria correctamente, pero no me gusta, ya que en mi definición de mi
clase persona no dige que podía llevar un libro y un boli.

Lo suyo sería añadir más funcionalidad a nuestra clase como:

persona.get_mochila().add_objeto(libro)

De forma similar, como me has indicando, en gtk:

objeto.set_data*()*

No se... me gusta más.

Un saludo.
-- 
Benito Rodríguez Arcos
------------ próxima parte ------------
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes


Más información sobre la lista de distribución Python-es