On 2013-05-04, at 7:00 PM, yu wu <vanii.wa...@gmail.com> wrote:

> As I wrote in my original email, the renderer is ** not ** set editable. 
> Therefore, it can't be connected to ** edited ** signal. 
> 
> Here is the situation for example. Renderer 1 -- column 0 is set editable. 
> Renderer 2-4, i.e., column 1-3, is not set editable. When column 0 is edited, 
> the value of column 1 is set. As to the values for column 2-3, they are set 
> by other functions. Then I would like to capture the changes of column 1-3. 
> After I get the changes, some other widgets (inside treeview or outside 
> treeview) will be updated. 
> 

I see, well the most efficient way to handle your situation really depends on 
what you need.

For your other display widgets, you might consider using GtkCellView (a widget 
for rendering a single row from a tree model), or like you mention in the other 
mail, you could listen to "row-chaned" and update all the widgets which need to 
display the changed row.

You could also implement custom display widgets like GtkCellView, by keeping a 
GtkTreeRowReference, queuing a redraw when the row changes, and drawing the 
visual state based of the row data at "draw" time.

> By the way, I don't know the difference between gtk-list and gtk-devel-list. 
> Now I know it. Could you or someone tell me how to move this post to gtk-list?

Don't worry about it, posts can't be "moved", just use the other lists next 
time ;)

> 
> 在 2013年5月4日星期六,Tristan Van Berkom 写道:
> On Sat, May 4, 2013 at 12:37 PM, yu wu <vanii.wa...@gmail.com> wrote:
> > I am using the followed to renderer text in cells:
> >
> > ++++++++++++++++++++++++
> >
> >   renderer = gtk_cell_renderer_text_new();
> >   column = gtk_tree_view_column_new_with_attributes((local = char_to_utf8
> > ("weight(kg/m)")), renderer, "text", MEM_SEC_WEIGHT_PER_METER, NULL);
> >   g_free(local);
> >   gtk_tree_view_append_column(treeview, column);
> >
> > ++++++++++++++++++++++++
> >
> > I don't set `editable' attribute for the renderer. The value for specified
> > cell is set by
> >
> > other sub-function. Then how can I get the `changed' signal for the
> > specified cell when its
> > value is changed? My purpose is to update other widget when text value in
> > cell is changed.
> > For the text cell renderer, it only has edited signal that is not useful for
> > my case
> 
> How come the "edited" signal is not useful ?
> 
> You want to catch *every* change while the user is editing a cell ?
> 
> This can be done, but it kind of changes the way cell editing usually
> works, i.e. pressing escape, or losing editor focus while editing a text
> cell is generally supposed to "cancel" the current edit, hence usually
> you wait until the "edited" signal is fired in order to commit any changes
> to the underlying model.
> 
> If you need to handle every keystroke, then connect to the "editing-started"
> signal of a GtkCellRendererText for example, the GtkCellEditable widget will
> in this case be a GtkEntry (which will exist for the duration of the edit), 
> then
> you can connect to the "changed" signal of this entry.
> 
> Note also, this list is about development of GTK+ itself, you should direct
> your questions about using GTK+ to gtk-app-devel-list instead.
> 
> Cheers,
>        -Tristan
> 
> > (or maybe I misunderstand some points). When some cell is changed, it might
> > have no
> > any selection. That's, the `changed' signal for selection has no use here.
> >
> > Please help.
> >
> > _______________________________________________
> > gtk-devel-list mailing list
> > gtk-devel-list@gnome.org
> > https://mail.gnome.org/mailman/listinfo/gtk-devel-list
> >
_______________________________________________
gtk-devel-list mailing list
gtk-devel-list@gnome.org
https://mail.gnome.org/mailman/listinfo/gtk-devel-list

Reply via email to