Object Hierarchy:

Object hierarchy for TreeExpander


[ CCode ( type_id = "gtk_tree_expander_get_type ()" ) ]
public class TreeExpander : Widget, Accessible, Buildable, ConstraintTarget

`GtkTreeExpander` is a widget that provides an expander for a list.

It is typically placed as a bottommost child into a `GtkListView` to allow users to expand and collapse children in a list with a [ class@Gtk.TreeListModel]. `GtkTreeExpander` provides the common UI elements, gestures and keybindings for this purpose.

On top of this, the "listitem.expand", "listitem.collapse" and "listitem.toggle-expand" actions are provided to allow adding custom UI for managing expanded state.

The `GtkTreeListModel` must be set to not be passthrough. Then it will provide [class@Gtk.TreeListRow] items which can be set via [ method@Gtk.TreeExpander.set_list_row] on the expander. The expander will then watch that row item automatically. [ method@Gtk.TreeExpander.set_child] sets the widget that displays the actual row contents.

CSS nodes

``` treeexpander ├── [indent]* ├── [expander] ╰── <child> ```

`GtkTreeExpander` has zero or one CSS nodes with the name "expander" that should display the expander icon. The node will be ` GtkTreeExpander:checked` when it is expanded. If the node is not expandable, an "indent" node will be displayed instead.

For every level of depth, another "indent" node is prepended.


`GtkTreeExpander` uses the gtk_accessible_role_group role. The expander icon is represented as a gtk_accessible_role_button, labelled by the expander's child, and toggling it will change the gtk_accessible_state_expanded state.

Namespace: Gtk
Package: gtk4



Creation methods:


Inherited Members:

All known members inherited from class Gtk.Widget