public class Assistant : Window, Accessible, Buildable, ConstraintTarget, Native, Root, ShortcutManager
`GtkAssistant` is used to represent a complex as a series of steps.
![An example GtkAssistant](assistant.png)
Each step consists of one or more pages. `GtkAssistant` guides the user through the pages, and controls the page flow to collect the data needed for the operation.
`GtkAssistant` handles which buttons to show and to make sensitive based on page sequence knowledge and the [enum@Gtk.AssistantPageType] of each page in addition to state information like the *completed* and *committed* page statuses.
If you have a case that doesn’t quite fit in `GtkAssistant`s way of handling buttons, you can use the gtk_assistant_page_custom page type and handle buttons yourself.
`GtkAssistant` maintains a `GtkAssistantPage` object for each added child, which holds additional per-child properties. You obtain the `GtkAssistantPage` for a child with [method@Gtk.Assistant.get_page].
GtkAssistant as GtkBuildable
The `GtkAssistant` implementation of the `GtkBuildable` interface exposes the
action_area as internal children with the name
To add pages to an assistant in `GtkBuilder`, simply add it as a child to the `GtkAssistant` object. If you need to set per-object properties, create a `GtkAssistantPage` object explicitly, and set the child widget as a property on it.
`GtkAssistant` has a single CSS node with the name window and style class .assistant.