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 ListView to allow users to expand and collapse children in a list with a TreeListModel. It will provide 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 TreeListModel must be set to not be passthrough. Then it will provide TreeListRow items which can be set via set_list_row on the expander. The expander will then watch that row item automatically. set_child sets the widget that displays the actual row contents.

CSS nodes

├── [indent]*
├── [expander]
╰── <child>
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