Question

Je dois enlever la flèche de tri à partir d'un en-tête de colonne. Cela peut être fait en appelant set_sort_indicator(false) sur la colonne.

La flèche n'apparaît pas, mais l'espace car il semble être encore réservé. Si le titre de la colonne est assez grand pour remplir tous l'en-tête, la dernière partie est clipsé (où la flèche doit être).

Y at-il un moyen de faire le titre de remplir l'en-tête entier?

Était-ce utile?

La solution

Cela semble être un peu bizarre dans GTK +. Je téléchargé et lire les parties pertinentes du code du GtkTreeViewColumn, et il semble utiliser cette logique:

  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 est le widget maintenant la flèche. Cela semble indiquer que le widget de flèche est toujours emballé dans la boîte horizontale qui fait l'en-tête de la colonne, puis juste caché (pas supprimé) si elle n'est pas censé être visible. Cela signifie qu'il est toujours là dans la boîte, occupant l'espace et entraînant l'étiquette à clipser.

Je vous recommande la recherche à travers le GTK + bugtracker pour un question à ce sujet, et si aucun se trouve, en créer un.

Autres conseils

Ok, donc je l'ai soumis un rapport de bogue à gtk. Ils ont dit que ce n'est pas un problème et il ne sera pas fixé.

Je l'ai regardé sur d'autres boîtes à outils graphiques (fenêtres, qt) et leur mise en œuvre est différente, mais cela ne semble pas d'importance pour les gars dans l'équipe de gtk.

Ok, vous pouvez utiliser la méthode de set_clickable à la colonne vous ne voulez pas avoir une flèche puis utilisez signal_connect au signal de clicked et se lier à une fonction qui utilisera get_sort_column_id pour obtenir l'ordre de tri actuel puis appliquer l'ordre de tri inverse en utilisant set_sort_column_id.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top