2009-05-27 9 views
1

Мне нужно удалить стрелку сортировки из заголовка столбца. Это можно сделать, позвонив в столбец set_sort_indicator(false).Как удалить стрелку сортировки GtkTreeView?

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

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

ответ

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 по поводу этого вопроса, и если ни один не найден, создайте его.

+0

Благодарим за отзыв. Я искал себя в коде GTK, и я заметил это, но я подумал, что если виджет будет упакован, а затем скрыт, он не займет место. Недавно я немного поработал в QT, и там, когда вы скрываете виджет, пространство больше не используется. – 2009-05-28 09:05:52

+0

Хм ... Да, это звучит странно. Теперь я немного сомневаюсь в собственном ответе, так как кажется странным, что что-то невидимое должно занимать место. Я не вернусь и еще раз прочитаю код, но я по-прежнему рекомендую маршрут отслеживания ошибок. – unwind

0

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

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

0

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