【发布时间】:2012-12-04 16:13:26
【问题描述】:
我有一个问题。我有一个GtkListStore 和一个GtkTreeView,当用户单击GtkTreeView 的某个列时,我想对GtkListStore 进行排序并将结果更新到GtkTreeView。我假设列是可点击的,并且不能重新排序,所以列的数字顺序可以用来设置排序列的索引。但是当用户单击特定列的标题时,我似乎找不到发出哪个信号。我一遍又一遍地浏览了 GTKMM 文档,但似乎没有提及!
【问题讨论】:
我有一个问题。我有一个GtkListStore 和一个GtkTreeView,当用户单击GtkTreeView 的某个列时,我想对GtkListStore 进行排序并将结果更新到GtkTreeView。我假设列是可点击的,并且不能重新排序,所以列的数字顺序可以用来设置排序列的索引。但是当用户单击特定列的标题时,我似乎找不到发出哪个信号。我一遍又一遍地浏览了 GTKMM 文档,但似乎没有提及!
【问题讨论】:
使用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));
【讨论】:
这不是你应该做的。
可以有多个视图连接到同一个模型;排序不是您对模型执行的操作,而是您对视图执行的操作。
查看@987654321@ 接口(及其@987654322@ 实现)。
【讨论】:
GtkListStoreName.set_sort_column_id(some_integer); 但我就是不明白哪个事件应该触发这个。我对排序没有问题。我只是找不到如何检测点击了哪个列标题。