Re: problema con Pygtk + Treeview + TreeModelFilter
- From: "Aldrin Martoq" <amartoq dcc uchile cl>
- To: "Eduardo Silva" <edsiper gmail com>
- Cc: "Advocacy, chit-chat and event planning in Chile" <gnome-cl-list gnome org>
- Subject: Re: problema con Pygtk + Treeview + TreeModelFilter
- Date: Thu, 13 Nov 2008 22:11:45 -0300
2008/11/13 Eduardo Silva <edsiper gmail com>:
> En un treeview me es imposible hacer modificaciones con set_value()... lo
> raro es que hice casos de prueba y si tengo un treeview sin filtro funciona,
> si tiene filtro falla con:
> tv_fail.py:19: GtkWarning: gtk_tree_store_set_value: assertion `VALID_ITER
> (iter, tree_store)' failed
> model.set_value (iter, 0, 'New value...')
> lo raro es que el iter es totalmente valido...
Eduardo!
El iter es invalido si tienes encadenados filtros entre el modelo y la
vista, ya que debes convertirlo entre el modelo/filtro superior y el
inferior (child_to_iter o iter_to_child depende desde donde la
conversion); esto sale oscuramente en alguna de las guias de pygtk.
Tambien puedes crear tus propios filtros.
Mas o menos asi:
f2 FILTRO2 f2_iter
f1_iter = f2.iter_to_child(f2_iter)
f2_iter = f2.child_to_iter(f1_iter)
f1 FILTRO1 f1_iter
m1_iter = f1.iter_to_child(f1_iter)
f1_iter = f1.child_to_iter(m1_iter)
m1 MODELO m1_iter
Adjunto parche. Saludos!
--
Aldrin Martoq
http://aldrinvideopodcast.podshow.com/
--- tv_fail.py 2008-11-13 21:58:59.000000000 -0300
+++ tv_fail_new.py 2008-11-13 22:00:56.000000000 -0300
@@ -15,15 +15,16 @@
def _selected (self, tv, path, col):
store, iter = tv.get_selection ().get_selected()
+ child_iter = self.filter.convert_iter_to_child_iter(iter)
model = store.get_model()
- model.set_value (iter, 0, 'New value...')
+ model.set_value (child_iter, 0, 'New value...')
def init_model (self):
store = gtk.TreeStore (gobject.TYPE_STRING)
# self.set_model (store)
store.append(None, ['Valor inicial'])
- filter = store.filter_new()
+ self.filter = filter = store.filter_new()
filter.set_visible_func(self._visible_cb)
self.set_model(filter)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]