GtkTreeView列标题单击事件

时间:2012-12-04 16:13:27

标签: c++ linux signals gtkmm

我有一个问题。我有GtkListStoreGtkTreeView,我想对GtkListStore进行排序,并在用户点击GtkTreeView的某个列时将结果更新为GtkTreeView。我假设列是可点击的,并且无法重新排序,因此列的数字顺序可用于设置排序列的索引。但是,当用户点击特定列的标题时,我似乎无法找到发出的信号。我一次又一次地阅读了GTKMM文档,但似乎没有提到它!

2 个答案:

答案 0 :(得分:3)

使用Gtk::TreeView::get_column(<column-no>)获取特定列,并使用Gtk::TreeViewColumn::signal_clicked()附加到其“点击”信号:

Gtk::TreeViewColumn* col = myview.get_column(SOME_COLUMN_NUMBER);
col->signal_clicked().connect(sigc::mem_fun(*this,&some_method));

答案 1 :(得分:0)

这不是你应该怎么做的。

可以有多个视图连接到同一个模型;排序是不是你对模型所做的事情,这是你对视图所做的事情。

请参阅GtkTreeSortable接口(及其GtkTreeModelSort实现)。