我需要从列标题中删除排序箭头。这可以通过调用列上的set_sort_indicator(false)
来完成。
不显示箭头,但它的空间似乎仍然保留。如果列的标题足够大以填充所有标题,则剪切最后一部分(箭头应该在哪里)。
有没有办法让标题填满整个标题?
答案 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
订购。