[prev in list] [next in list] [prev in thread] [next in thread]
List: gtkmm
Subject: Re: How to make a single cell editable in Gtk::TreeView?
From: Kjell Ahlstedt <kjell.ahlstedt () bredband ! net>
Date: 2012-03-07 9:01:29
Message-ID: 4F5723E9.6040101 () bredband ! net
[Download RAW message or body]
2012-03-07 09:00, Murray Cumming skrev:
> On Tue, 2012-03-06 at 22:28 +0100, Gerardo Ballabio wrote:
> > 2012/3/6, Kjell Ahlstedt<kjell.ahlstedt@bredband.net>:
> > > I haven't tested this, but I think you shall call one of the
> > > Gtk::TreeView::set_cursor() methods with start_editing = true.
> > That worked after I specialized on_expose_event() and put the call
> > there. Putting it in the constructor didn't work, even after
> > show_all_children(): the row was selected, but the cell wasn't open
> > for editing. I suppose between the constructor and the expose
> > something happens that turns off editing mode.
> Maybe you were doing this in some other TreeView signal handler. I've
> had similar problems, which I've solved by using a signal_idle handler.
> connect_once() makes this fairly easy:
> http://developer.gnome.org/glibmm/unstable/classGlib_1_1SignalTimeout.html#a4ea8fdd120102d7963709916f28b2bcc
>
> I think it makes more sense to use this than an expose handler. I think
> it's a common technique.
>
>
The description of Gtk::TreeView::set_cursor() says "Please note that
editing can only happen when the widget is realized." What about
connecting to TreeView's "realize" signal?
m_TreeView.signal_realize().connect(sigc::mem_fun(*this,
&ExampleWindow::treeview_on_realize));
void ExampleWindow::treeview_on_realize()
{
m_TreeView.set_cursor(Gtk::TreeModel::Path("1"),
*m_TreeView.get_column(1), true);
}
_______________________________________________
gtkmm-list mailing list
gtkmm-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtkmm-list
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic