Pygtk: limpiar contenido de ComboBoxEntry

Rafael Villar Burke pachi en mmn-arquitectos.com
Lun Ene 17 14:33:47 CET 2005


Paco Moreno wrote:

>Hola, después de mucho buscar el método para borrar los contenidos de
>este control que utilizo es:
>        modelo = self.x.get_widget('elige_vpn').get_model()
>        for a in range(0,len(modelo)):
>        self.x.get_widget('elige_vpn').remove_text(a)
>pero no  lo hace bien, se deja los primeros valores sin limpiar,¿qué
>puedo hacer?
>PD: ¿no están estos controles demasiado jodidos de manejar?
>  
>
La verdad es que eso es espantoso... y gtk no va por ahí normalmente :)
El modelo contenido en un control gtk.ComboboxEntry es un gtk.ListStore 
[1]. Éste tiene un método, clear() que limpia todas las filas [2] sin 
que sea necesario hacer esas virguerías. No lo había usado pero la 
prueba siguiente parece funcionar, así que creo que por ahí puede estar 
la solución :)

>>> import pygtk
>>> pygtk.require("2.0")
>>> import gtk
>>> import gobject
>>> liststore = gtk.ListStore(gobject.TYPE_STRING)
>>> comboboxentry = gtk.ComboBoxEntry(liststore, 0)
>>> modelo = comboboxentry.get_model()
>>> print modelo
>>> <gtk.ListStore object (GtkListStore) at 0xb26df0>
>>> modelo.clear()
>>> 


[1] http://pygtk.org/pygtk2reference/class-gtkcomboboxentry.html
[2] 
http://pygtk.org/pygtk2reference/class-gtkliststore.html#method-gtkliststore--clear
--
Pachi




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