GtkTreeView 列标题点击事件
Posted
技术标签:
【中文标题】GtkTreeView 列标题点击事件【英文标题】:GtkTreeView Column Header Click Event 【发布时间】:2012-12-04 16:13:26 【问题描述】:我有一个问题。我有一个GtkListStore
和一个GtkTreeView
,当用户单击GtkTreeView 的某个列时,我想对GtkListStore 进行排序并将结果更新到GtkTreeView。我假设列是可点击的,并且不能重新排序,所以列的数字顺序可以用来设置排序列的索引。但是当用户单击特定列的标题时,我似乎找不到发出哪个信号。我一遍又一遍地浏览了 GTKMM 文档,但似乎没有提及!
【问题讨论】:
【参考方案1】:使用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));
【讨论】:
没错! :D 非常感谢!【参考方案2】:这不是你应该做的。
可以有多个视图连接到同一个模型;排序不是您对模型执行的操作,而是您对视图执行的操作。
查看@987654321@
接口(及其@987654322@
实现)。
【讨论】:
但在这种情况下,我确实想对模型进行排序,因为只有一个视图,而视图存在的唯一原因是向用户展示排序后的模型是什么样的。我总是可以像这样手动对模型进行排序:GtkListStoreName.set_sort_column_id(some_integer);
但我就是不明白哪个事件应该触发这个。我对排序没有问题。我只是找不到如何检测点击了哪个列标题。以上是关于GtkTreeView 列标题点击事件的主要内容,如果未能解决你的问题,请参考以下文章