如何删除GtkTreeView排序箭头?

时间:2009-05-27 08:21:44

标签: c++ gtk gtkmm

我需要从列标题中删除排序箭头。这可以通过调用列上的set_sort_indicator(false)来完成。

不显示箭头,但它的空间似乎仍然保留。如果列的标题足够大以填充所有标题,则剪切最后一部分(箭头应该在哪里)。

有没有办法让标题填满整个标题?

3 个答案:

答案 0 :(得分:0)

这在GTK +中似乎有点奇怪。我downloaded并阅读了GtkTreeViewColumn代码的相关部分,似乎使用了这个逻辑:

  if (tree_column->show_sort_indicator ||
       (GTK_IS_TREE_SORTABLE (model) && tree_column->sort_column_id >= 0))
    gtk_widget_show (arrow);
  else
    gtk_widget_hide (arrow);

其中arrow是持有箭头的小部件。这似乎表明箭头小部件总是打包到组成列标题的水平框中,然后只是隐藏(不删除),如果它不应该是可见的。这意味着它仍然存在于盒子中,占据空间并导致标签被剪裁。

我建议您在GTK+ bugtracker中搜索有关此问题的问题,如果找不到,请创建一个。

答案 1 :(得分:0)

好的,所以我向gtk提交了一份错误报告。他们说这不是问题,也不会修复。

我看过其他图形工具包(windows,qt)并且它们的实现方式不同,但这对gtk团队中的人来说似乎并不重要。

答案 2 :(得分:0)

好的,您可以使用set_clickable方法到列,您不希望它有箭头 然后将signal_connect用于clicked信号并将其绑定到函数,它将使用get_sort_column_id获取当前排序顺序,然后应用反向排序使用set_sort_column_id订购