gtk.column_view.ColumnView uses the factories of its columns to generate a cell widget for
each column, for each visible item and displays them together as the row for
this item.
The property@Gtk.ColumnView:show-row-separators and
property@Gtk.ColumnView:show-column-separators properties offer a simple way
to display separators between the rows or columns.
gtk.column_view.ColumnView allows the user to select items according to the selection
characteristics of the model. For models that allow multiple selected items,
it is possible to turn on *rubberband selection*, using
property@Gtk.ColumnView:enable-rubberband.
gtk.column_view.ColumnView uses a single CSS node named columnview. It may carry the
.column-separators style class, when property@Gtk.ColumnView:show-column-separators
property is set. Header widgets appear below a node with name header.
The rows are contained in a gtk.list_view.ListView widget, so there is a listview
node with the same structure as for a standalone gtk.list_view.ListView widget.
If property@Gtk.ColumnView:show-row-separators is set, it will be passed
on to the list view, causing its CSS node to carry the .separators style class.
For rubberband selection, a node with name rubberband is used.
The main columnview node may also carry style classes to select
the style of list presentation:
.rich-list, .navigation-sidebar or .data-table.
gtk.column_view.ColumnView presents a large dynamic list of items using multiple columns with headers.
gtk.column_view.ColumnView uses the factories of its columns to generate a cell widget for each column, for each visible item and displays them together as the row for this item.
The property@Gtk.ColumnView:show-row-separators and property@Gtk.ColumnView:show-column-separators properties offer a simple way to display separators between the rows or columns.
gtk.column_view.ColumnView allows the user to select items according to the selection characteristics of the model. For models that allow multiple selected items, it is possible to turn on *rubberband selection*, using property@Gtk.ColumnView:enable-rubberband.
The column view supports sorting that can be customized by the user by clicking on column headers. To set this up, the gtk.sorter.Sorter returned by gtk.column_view.ColumnView.getSorter must be attached to a sort model for the data that the view is showing, and the columns must have sorters attached to them by calling gtk.column_view_column.ColumnViewColumn.setSorter. The initial sort order can be set with gtk.column_view.ColumnView.sortByColumn.
The column view also supports interactive resizing and reordering of columns, via Drag-and-Drop of the column headers. This can be enabled or disabled with the gtk.column_view.ColumnView.gboolean and gtk.column_view_column.ColumnViewColumn.gboolean properties.
To learn more about the list widget framework, see the overview.
CSS nodes
gtk.column_view.ColumnView uses a single CSS node named columnview. It may carry the .column-separators style class, when property@Gtk.ColumnView:show-column-separators property is set. Header widgets appear below a node with name header. The rows are contained in a gtk.list_view.ListView widget, so there is a listview node with the same structure as for a standalone gtk.list_view.ListView widget. If property@Gtk.ColumnView:show-row-separators is set, it will be passed on to the list view, causing its CSS node to carry the .separators style class. For rubberband selection, a node with name rubberband is used.
The main columnview node may also carry style classes to select the style of list presentation: .rich-list, .navigation-sidebar or .data-table.
Accessibility
gtk.column_view.ColumnView uses the gtk.types.AccessibleRole.TreeGrid role, header title widgets are using the gtk.types.AccessibleRole.ColumnHeader role. The row widgets are using the gtk.types.AccessibleRole.Row role, and individual cells are using the gtk.types.AccessibleRole.GridCell role