problema con Pygtk + Treeview + TreeModelFilter
- From: "Eduardo Silva" <edsiper gmail com>
- To: "Advocacy, chit-chat and event planning in Chile" <gnome-cl-list gnome org>
- Subject: problema con Pygtk + Treeview + TreeModelFilter
- Date: Thu, 13 Nov 2008 15:58:49 -0500
Hola estimados,
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...
adjunto los archivos para quien pueda darme una mano...
La idea es que cuando se active la fila seleccionada por row-activated se cambie su contenido.
salu2!
--
Eduardo Silva
http://edsiper.linuxchile.cl
#!/usr/bin/env python
import pygtk
import gtk
import gobject
class test (gtk.TreeView):
def __init__ (self):
gtk.TreeView.__init__ (self)
self.init_model ()
self.init_view_columns ()
self.connect ('row-activated', self._selected)
def _selected (self, tv, path, col):
store, iter = tv.get_selection ().get_selected()
store.set_value (iter, 0, 'New value...')
def init_model (self):
store = gtk.TreeStore (gobject.TYPE_STRING)
self.set_model (store)
store.append(None, ['Valor inicial'])
def init_view_columns (self):
col = gtk.TreeViewColumn ()
col.set_title ('Stock Items')
render_text = gtk.CellRendererText ()
col.pack_start(render_text, expand=True)
col.add_attribute (render_text, 'text',0)
self.append_column (col)
if __name__ == '__main__':
w = gtk.Window ()
w.set_size_request (width = 400, height = 300)
w.connect ('destroy', gtk.mainquit)
w.add (test())
w.show_all ()
gtk.main ()
#!/usr/bin/env python
import pygtk
import gtk
import gobject
class test (gtk.TreeView):
def __init__ (self):
gtk.TreeView.__init__ (self)
self.init_model ()
self.init_view_columns ()
self.connect ('row-activated', self._selected)
def _selected (self, tv, path, col):
store, iter = tv.get_selection ().get_selected()
model = store.get_model()
model.set_value (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()
filter.set_visible_func(self._visible_cb)
self.set_model(filter)
def _visible_cb(self, model, iter):
return True
def init_view_columns (self):
col = gtk.TreeViewColumn ()
col.set_title ('Stock Items')
render_text = gtk.CellRendererText ()
col.pack_start(render_text, expand=True)
col.add_attribute (render_text, 'text',0)
self.append_column (col)
if __name__ == '__main__':
w = gtk.Window ()
w.set_size_request (width = 400, height = 300)
w.connect ('destroy', gtk.mainquit)
w.add (test())
w.show_all ()
gtk.main ()
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]