I disabled sorting while doing the appends is happening, but it's still
slow. Maybe some calls in my
code must be in a different order..
Have a look:
# create a liststore with one string column to use as the model
liststore = gtk.ListStore(str, int)
liststore.set_default_sort_func(None)
# create the TreeView using liststore
treeview = gtk.TreeView(liststore)
treeview.set_size_request(300, 200)
treeview.set_reorderable(False)
treeview.connect('row-activated', self.selectItem, object_list)
# create a CellRenderer to render the data
cell = gtk.CellRendererText()
# create the TreeViewColumns to display the data
column = gtk.TreeViewColumn('List of Objects (identifiers)', cell,
text=0)
# column.set_sort_column_id(0)
treeview.append_column(column)
# freeze the tree and detach the model to add some rows...
treeview.freeze_child_notify()
treeview.set_model(None)
# Add the items to the liststore
i=0
rows=[]
for row in object_list)):
liststore.append( [row.identifier, i])
i+=1
treeview.set_model(liststore)
treeview.thaw_child_notify()
treeview.show()
# make a scrolled window container to pack th treeview,
# so tha it supports scolling
scrolledwindow = gtk.ScrolledWindow()
scrolledwindow.add(treeview)
hbox.pack_start(scrolledwindow, False, 5, 5)
-------------------------------------------------------------------------------------------------------------
object_list is a list that contains some objects with some attributes..
Thank you,
Thanasis
On Wed, Oct 28, 2009 at 5:20 PM, Neil Muller
<[email protected]<drnlmuller%[email protected]>
> wrote:
> On Wed, Oct 28, 2009 at 4:33 PM, Petsas Athanasios <[email protected]>
> wrote:
> > Hello,
> >
> > I have one more question on the use of the treeview with a listStore
> model.
> > When I want to append a big amount of rows, for instance 100, the appeend
> > method it is extremely slow inside a loop..
> >
> > I tried to use this code:
> >
> > treeview.freeze_child_notify()
> > treeview.set_model(None)
> >
> > # Add rows to the model
> > # ...
> >
> > treeview.set_model(model)
> > treeview.thaw_child_notify()
> >
> > from taken from this page:
> > http://faq.pygtk.org/index.py?req=show&file=faq13.043.htp
> > but it's still slow!
>
> Appendiing 100 rows should be fast. The only thing I can think of that
> would make this noticeably slow is if the ListStore is sorted, in
> which case you should disable sorting while doing the appends.
>
> --
> Neil Muller
> [email protected]
>
> I've got a gmail account. Why haven't I become cool?
>
_______________________________________________
pygtk mailing list [email protected]
http://www.daa.com.au/mailman/listinfo/pygtk
Read the PyGTK FAQ: http://faq.pygtk.org/