John wrote:
If I understand your question I don't think you need to use the
set_modify_func() method. The set_visible_func() method should be
sufficient but you have to pass in an object that has mutable contents
corresponding to the columns that you want to use for filtering. For
example you could create a Python object that has one attribute that
contains a list of car models and another attribute that has a maximum
price. Pass this object as the data arg to the set_visible_func() method
and change the attributes as needed. Your visible_cb() function could then
do something like:
def visible_cb(self, treestore, iter, x):
return treestore[iter][0] in x.models and treestore[iter][4] <=
x.maxprice
John
It did work!!
thanks a lot jhon!!...
However a new trouble has shown up!!, now i do need to get the row data from
the treeview which respond to the set_visible_func() method. It is easy to
get the data from an ordinary treeview, it can be done by "catching" the
"cursor_changed" signal and handling it with a function as follows:
---------------------------------------------------------------------------------------------------------------------------------
#the treeview is connected to the signal and this event is connected to a
signal handler
self.connection= self.treeview.connect("cursor_changed", self.getreedata)
#then the signal handler (a callback) is in charge of getting the data of
the row
def self.getreedata(self, iter):
treeselection = self.treeview.get_selection()
select= treeselection.get_selected()
row_value= self.treestore.get_value(select[1], 0)
---------------------------------------------------------------------------------------------------------------------------------
where "select" is a list with two values [model, iter], then select[1] is an
iter pointing to the position of the cursor in the treeview and
consecuently, "row_value" is the value of the row where the cursor is
positioned in the column "0" of the treeview.
This works perfectly in odinary treeviews, however when filtering (i mean
when using the set_visible_func() method) i do receive the following error
message:
---------------------------------------------------------------------------
File "carstreeview.py", line 11, in getreedata
row_value= self.treestore.get_value(select[1], 0)
TypeError = unknown type (null)
---------------------------------------------------------------------------
why this does not work when filtering the treeview???, do i need to set any
property to the treeview?? the code above works properly for no filtered or
commom treeviews, but not when filtering...is the case that
set_visible_func() avoids retrieving row values??? if so, can the data be
retrieved from the treemodel??, how??, i have seen there is not
"cursor_changed" signals for treemodels
any suggestion??.
thanks for your help in advance
juan.-
_______________________________________________
pygtk mailing list pygtk@daa.com.au
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/