Gibt es eine Möglichkeit, alle Spalten in einem GtkTreeView entweder programmgesteuert oder mit Glade/GtkBuilder die gleiche Breite zu haben?
Antworten
Zu viele Anzeigen?Ein besserer Weg ist es, gtk_tree_view_column_set_expand
zu verwenden.
Dies ist ein Beispiel mit 6 Spalten. Es wird davon ausgegangen, dass Sie gtk_widget_set_size_request für das Treeview-Widget verwenden. Hier habe ich auch eine Größenanforderung für das Fenster gemacht, sodass die Breite des Treeviews der des Fensters entspricht. Folgendes funktioniert für mich:
gint breite = 650;
gtk_widget_set_size_request (Fenster, breite, 550);
gtk_widget_set_size_request (Treeview, breite, -1);
for (gint i = 0; i < 6; i++) {
gtk_tree_view_column_set_sizing (Spalten[i], GTK_TREE_VIEW_COLUMN_FIXED);
gtk_tree_view_column_set_fixed_width (Spalten[i], breite / 6);
}
Wenn Sie das Fenster neu dimensionieren, müssen Sie die Größen erneut berechnen. Sie müssen also ein Größenänderungsereignis eines Fensters mit einem Signal erfassen.
gtk_widget_get_preferred_size() hat mir nicht die genaue Breite zurückgegeben, nur einen ungefähren Wert.