Как убрать стрелку сортировки GtkTreeView? - PullRequest
1 голос
/ 27 мая 2009

Мне нужно удалить сортировочную стрелку из заголовка столбца. Это можно сделать, вызвав <a href="http://library.gnome.org/devel/gtk/stable/GtkTreeViewColumn.html#gtk-tree-view-column-set-sort-indicator" rel="nofollow noreferrer">set_sort_indicator(false)</a> в столбце.

Стрелка не отображается, но пространство для нее, похоже, все еще зарезервировано. Если заголовок столбца достаточно большой, чтобы заполнить весь заголовок, последняя часть обрезается (там, где должна быть стрелка).

Есть ли способ заставить заголовок заполнить весь заголовок?

Ответы [ 3 ]

0 голосов
/ 04 июня 2009

Хорошо, я отправил отчет об ошибке в gtk. Они сказали, что это не проблема и она не будет исправлена.

Я смотрел на другие графические наборы инструментов (windows, qt), и их реализация отличается, но, похоже, это не имеет значения для ребят из команды gtk.

0 голосов
/ 28 января 2013

Хорошо, вы можете использовать set_clickable метод для столбца , вы не хотите, чтобы он имел стрелку затем используйте signal_connect для сигнала clicked и свяжите его с функцией , которая будет использовать get_sort_column_id для получения текущего порядка сортировки, затем примените обратный порядок сортировки , используя set_sort_column_id.

0 голосов
/ 28 мая 2009

Это кажется немного странным в GTK +. Я загрузил и прочитал соответствующие части кода 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 , и, если ничего не найдено, создайте ее.

...