Wie der GtkTreeView Sortierung Pfeil entfernen?
Frage
Ich brauche die Sortierung Pfeil von einem Spaltenkopf zu entfernen. Dies kann durch den Aufruf set_sort_indicator(false)
auf der Säule erfolgen.
Der Pfeil wird nicht angezeigt, aber der Platz für scheint es immer noch reserviert werden. Wenn der Titel der Spalte groß genug ist, alle Header zu füllen, wird der letzte Teil abgeschnitten (wo sollte der Pfeil sein).
Gibt es eine Möglichkeit den Titel füllt den gesamten Header zu machen?
Lösung
Das scheint ein bisschen komisch in GTK + zu sein. Ich heruntergeladen und lesen Sie durch entsprechende Teile der GtkTreeViewColumn Code und es scheint, diese Logik zu verwenden:
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);
Wo arrow
ist das Widget auf den Pfeil hält. Dies scheint darauf hinzudeuten, dass der Pfeil-Widget immer in die horizontale Box verpackt ist, die auf die Spaltenköpfe bildet, und dann versteckt gerade (nicht entfernt), wenn es nicht angenommen hat, sichtbar zu sein. Das bedeutet, es ist immer noch da in der Box, Raum einnimmt und was das Etikett abgeschnitten werden.
Ich würde empfehlen, durch die GTK + Bugtracker für eine Frage darüber, und wenn keiner gefunden wird, erstellen.
Andere Tipps
Ok, also habe ich einen Fehlerbericht an gtk vorgelegt. Sie sagten, dass es kein Problem ist, und es wird nicht festgelegt werden.
Ich habe auf anderen grafischen Toolkits (Fenster, qt) sah und deren Umsetzung ist anders, aber das scheint nicht zu den Jungs in der gtk Team Rolle zu spielen.
Ok können Sie set_clickable
Methode, um die der Spalte Sie wollen es nicht um einen Pfeil haben
dann signal_connect
zum clicked
Signal verwenden und es zu einer Funktion binden, die get_sort_column_id
die aktuelle Sortierreihenfolge verwenden, dann bekommen gilt die umgekehrte Reihenfolge, um mit set_sort_column_id
.