Domanda

Ho bisogno di rimuovere la freccia di ordinamento da una colonna. Questo può essere fatto chiamando set_sort_indicator(false) sulla colonna.

La freccia non viene visualizzato, ma lo spazio per esso sembra ancora essere riservati. Se il titolo della colonna è abbastanza grande per riempire tutto l'intestazione, l'ultima parte è ritagliato (dove la freccia dovrebbe essere).

C'è un modo per rendere il titolo riempire l'intera intestazione?

È stato utile?

Soluzione

Questo sembra essere un po 'strano in GTK +. I scaricato e leggere parti rilevanti del codice del GtkTreeViewColumn, e sembra di usare questa logica:

  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);

Dove arrow è il widget che detiene la freccia. Ciò sembra indicare che il widget freccia è sempre pieno nella scatola orizzontale che compone l'intestazione della colonna, e poi semplicemente nascosto (non rimosso) se non dovrebbe essere visibile. Che significa che sia ancora là nella scatola, che occupa spazio e causando l'etichetta per essere fermato.

Mi consiglia la ricerca attraverso il GTK + bugtracker per un problema su questo, e se non viene trovato, crearne uno.

Altri suggerimenti

Ok, così ho presentato un bug report a gtk. Hanno detto che non è un problema e non verrà risolto.

Ho guardato su altri toolkit grafici (finestre, qt) e la loro attuazione è diversa, ma questo non sembra avere importanza per i ragazzi del team gtk.

Ok è possibile utilizzare il metodo set_clickable alla colonna non si desidera avere una freccia quindi utilizzare signal_connect al segnale clicked e associarlo ad un Funzione che utilizzerà get_sort_column_id per ottenere l'ordinamento corrente allora applicare l'ordinamento inverso usando set_sort_column_id.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top