Re: Problem with a TreeView - speed
- From: Milosz Derezynski <internalerror gmail com>
- To: gtkmm-list gnome org
- Subject: Re: Problem with a TreeView - speed
- Date: Mon, 16 Mar 2009 19:49:23 +0100
Sorry, I somehow skipped explicitly stating the point: There is no such thing as "invisible" rows with TreeView, because at least once, they will be visited. Whether you use a cell data func or not practically makes no difference at all, at least for that particular problem.
On Mon, Mar 16, 2009 at 7:48 PM, Milosz Derezynski
<internalerror gmail com> wrote:
Treeview will always visit newly added rows, and always visits all rows when setting the model. There is really no way with TreeView to make this very fast.
The only option is fixed width-fixed row height mode, in which TreeView will abstain from visiting all new rows *and* request the renderers to render the data (more precisely, call the size vfunc; it does this only to have the row heights available, but unfortunately for most cell renderers, getting their requested size, similar to a widget, will require them to render the content internally, e.g. CellRendererText will create a PangoLayout with its text, etc.).
The only viable solution that *I* recommend (I do this nowadays on a routine basis because TreeView is just too unflexible) is to write completely own view and model classes not using TreeView at all.
On Mon, Mar 16, 2009 at 5:37 PM, Murray Cumming
<murrayc murrayc com> wrote:
> > Your callback function will set whatever cellrenderer properties (in the
> > view) that you want to set, and will only be called for visible rows.
> >
>
> I really not understand where in your link a solution for "not showing
> the visible parts of the row" is !?
You _do_ want to show the _visible_ parts. You don't want to waste
processor time or memory on the non visible parts.
> Can you describe it, please?
I have tried to explain. I think you should try to use
set_cell_data_func() in an example and see when it is called.
--
Please note that according to the German law on data retention,
information on every electronic information exchange with me is
retained for a period of six months.
[Bitte beachten Sie, dass dem Gesetz zur Vorratsdatenspeicherung zufolge
jeder elektronische Kontakt mit mir sechs Monate lang gespeichert wird.]
--
Please note that according to the German law on data retention,
information on every electronic information exchange with me is
retained for a period of six months.
[Bitte beachten Sie, dass dem Gesetz zur Vorratsdatenspeicherung zufolge
jeder elektronische Kontakt mit mir sechs Monate lang gespeichert wird.]
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]