Pergunta

Eu preciso remover a seta de classificação de um cabeçalho de coluna. Isso pode ser feito chamando set_sort_indicator(false) na coluna.

A seta não é apresentada, mas o espaço para ele parece ainda ser reservados. Se o título da coluna é grande o suficiente para preencher todo o cabeçalho, a última parte é cortada (onde a seta deve ser).

Existe uma maneira de fazer o título preencher o cabeçalho completo?

Foi útil?

Solução

Este parece ser um pouco estranho em GTK +. I baixado e ler partes relevantes do código do GtkTreeViewColumn, e parece usar esta lógica:

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

Onde arrow é o widget segurando a seta. Isto parece indicar que a seta widget é sempre embalado em caixa horizontal que compõe cabeçalho da coluna e, em seguida, apenas oculto (não removido) se não é suposto ser visível. Isso significa que ele ainda está lá na caixa, ocupando espaço e fazendo com que o rótulo a ser cortada.

Eu recomendo a pesquisa através do GTK + bugtracker para um questão sobre isso, e se nada for encontrado, criar um.

Outras dicas

Ok, então eu tenho apresentou um relatório de bug para gtk. Eles disseram que não é um problema e não vai ser corrigido.

Eu olhei em outros kits de ferramentas gráficas (janelas, qt) e sua implementação é diferente, mas isso não parece importar para os caras da equipe de gtk.

Ok, você pode usar o método set_clickable à coluna você não quer que ele tenha uma seta em seguida, usar signal_connect ao sinal clicked e vinculá-lo a um Função que usará get_sort_column_id para obter a ordem de classificação atual, em seguida, se candidatar a ordem de classificação inversa usando set_sort_column_id.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top