2009-05-27 18 views
1

Ich muss den Sortierpfeil aus einer Spaltenüberschrift entfernen. Dies kann durch Aufruf der Spalte set_sort_indicator(false) erfolgen.Wie entferne ich den GtkTreeView-Sortierpfeil?

Der Pfeil wird nicht angezeigt, aber der Platz dafür scheint immer noch reserviert zu sein. Wenn der Titel der Spalte groß genug ist, um die gesamte Kopfzeile zu füllen, wird der letzte Teil abgeschnitten (wo der Pfeil sein sollte).

Gibt es eine Möglichkeit, den Titel die gesamte Kopfzeile ausfüllen zu lassen?

Antwort

0

Dies scheint in GTK + ein wenig seltsam zu sein. Ich downloaded und durch entsprechende Teile des Codes des GtkTreeViewColumn lesen, 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 hinzuweisen, dass das Pfeil-Widget immer in die horizontale Box gepackt wird, die die Spaltenkopfzeile bildet, und dann nur versteckt (nicht entfernt) wird, wenn es nicht sichtbar sein soll. Das bedeutet, dass es immer noch in der Box vorhanden ist, Platz beansprucht und das Etikett beschnitten wird.

Ich würde empfehlen, die GTK+ bugtracker für ein Problem zu diesem Thema suchen, und wenn keiner gefunden wird, erstellen Sie einen.

+0

Vielen Dank für die Antwort. Ich habe selbst in den GTK-Code geschaut und das merke ich, aber ich dachte, wenn das Widget gepackt und dann versteckt wird, wird es den Platz nicht einnehmen. Ich habe in letzter Zeit einige Arbeiten in QT gemacht, und wenn Sie ein Widget ausblenden, wird der Speicherplatz nicht mehr benutzt. –

+0

Hm ... Ja, das klingt sicher komisch. Jetzt bezweifle ich meine eigene Antwort ein wenig, da es seltsam erscheint, dass etwas Unsichtbares Platz einnimmt. Ich werde jetzt aber nicht mehr zurücklesen und mehr Code lesen, und ich empfehle immer noch die Bugtracker-Route. – unwind

0

Ok, also habe ich einen Fehlerbericht an gtk gesendet. Sie sagten, dass es kein Problem ist und es wird nicht behoben werden.

Ich habe auf andere grafische Toolkits (Windows, Qt) geschaut und deren Implementierung ist anders, aber das scheint den Jungs im gtk-Team egal zu sein.

0

Ok können Sie set_clickable Methode, um die die Spalte verwenden Sie nicht möchten, dass es einen Pfeil haben dann signal_connect zum clicked Signal verwenden und binden Sie es an eine Funktion die get_sort_column_id verwenden wird, den Strom zu bekommen Sortierreihenfolge dann Wenden Sie die umgekehrte Sortierreihenfolge mit set_sort_column_id an.

Verwandte Themen