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