### Class

# Gtk SearchEntry

#### Description [src]

    final class Gtk.SearchEntry : Gtk.Widget
      implements Gtk.Accessible, Gtk.Buildable, Gtk.ConstraintTarget, Gtk.Editable {
      /* No available fields */
    }

A single-line text entry widget for use as a search entry.

The main API for interacting with a `GtkSearchEntry` as entry is the `GtkEditable` interface.

It will show an inactive symbolic “find” icon when the search entry is empty, and a symbolic “clear” icon when there is text. Clicking on the “clear” icon will empty the search entry.

To make filtering appear more reactive, it is a good idea to not react to every change in the entry text immediately, but only after a short delay. To support this, `GtkSearchEntry` emits the `GtkSearchEntry::search-changed` signal which can be used instead of the `GtkEditable::changed` signal.

The `GtkSearchEntry::previous-match`, `GtkSearchEntry::next-match` and `GtkSearchEntry::stop-search` signals can be used to implement moving between search results and ending the search.

Often, `GtkSearchEntry` will be fed events by means of being placed inside a `GtkSearchBar`. If that is not the case, you can use `gtk_search_entry_set_key_capture_widget()` to let it capture key input from another widget.

`GtkSearchEntry` provides only minimal API and should be used with the `GtkEditable` API.

## Shortcuts and Gestures

The following signals have default keybindings:

- `GtkSearchEntry::activate`
- `GtkSearchEntry::next-match`
- `GtkSearchEntry::previous-match`
- `GtkSearchEntry::stop-search`

## CSS Nodes

    entry.search
    ╰── text

`GtkSearchEntry` has a single CSS node with name entry that carries a `.search` style class, and the text node is a child of that.

## Accessibility

`GtkSearchEntry` uses the `GTK_ACCESSIBLE_ROLE_SEARCH_BOX` role.

#### Ancestors

- GtkWidget
- GInitiallyUnowned
- GObject

#### Implements

- GtkAccessible
- GtkBuildable
- GtkConstraintTarget
- GtkEditable

#### Constructors

###### gtk_search_entry_new

Creates a `GtkSearchEntry`.

#### Instance methods

###### gtk_search_entry_get_input_hints

Gets the input purpose for `entry`.

since: 4.14

###### gtk_search_entry_get_input_purpose

Gets the input purpose of `entry`.

since: 4.14

###### gtk_search_entry_get_key_capture_widget

Gets the widget that `entry` is capturing key events from.

###### gtk_search_entry_get_placeholder_text

Gets the placeholder text associated with `entry`.

since: 4.10

###### gtk_search_entry_get_search_delay

Get the delay to be used between the last keypress and the `GtkSearchEntry::search-changed` signal being emitted.

since: 4.8

###### gtk_search_entry_set_input_hints

Sets the input hints for `entry`.

since: 4.14

###### gtk_search_entry_set_input_purpose

Sets the input purpose of `entry`.

since: 4.14

###### gtk_search_entry_set_key_capture_widget

Sets `widget` as the widget that `entry` will capture key events from.

###### gtk_search_entry_set_placeholder_text

Sets the placeholder text associated with `entry`.

since: 4.10

###### gtk_search_entry_set_search_delay

Set the delay to be used between the last keypress and the `GtkSearchEntry::search-changed` signal being emitted.

since: 4.8

##### Methods inherited from GtkWidget (164)

Please see GtkWidget for a full list of methods.

##### Methods inherited from GObject (43)

Please see GObject for a full list of methods.

##### Methods inherited from GtkAccessible (20)

###### gtk_accessible_announce

Requests the user’s screen reader to announce the given message.

since: 4.14

###### gtk_accessible_get_accessible_parent

Retrieves the accessible parent for an accessible object.

since: 4.10

###### gtk_accessible_get_accessible_role

Retrieves the accessible role of an accessible object.

###### gtk_accessible_get_at_context

Retrieves the implementation for the given accessible object.

since: 4.10

###### gtk_accessible_get_bounds

Queries the coordinates and dimensions of this accessible.

since: 4.10

###### gtk_accessible_get_first_accessible_child

Retrieves the first accessible child of an accessible object.

since: 4.10

###### gtk_accessible_get_next_accessible_sibling

Retrieves the next accessible sibling of an accessible object.

since: 4.10

###### gtk_accessible_get_platform_state

Queries a platform state, such as focus.

since: 4.10

###### gtk_accessible_reset_property

Resets the accessible property to its default value.

###### gtk_accessible_reset_relation

Resets the accessible relation to its default value.

###### gtk_accessible_reset_state

Resets the accessible state to its default value.

###### gtk_accessible_set_accessible_parent

Sets the parent and sibling of an accessible object.

since: 4.10

###### gtk_accessible_update_next_accessible_sibling

Updates the next accessible sibling.

since: 4.10

###### gtk_accessible_update_platform_state

Informs ATs that the platform state has changed.

since: 4.18

###### gtk_accessible_update_property

Updates a list of accessible properties.

###### gtk_accessible_update_property_value

Updates an array of accessible properties.

###### gtk_accessible_update_relation

Updates a list of accessible relations.

###### gtk_accessible_update_relation_value

Updates an array of accessible relations.

###### gtk_accessible_update_state

Updates a list of accessible states.

###### gtk_accessible_update_state_value

Updates an array of accessible states.

##### Methods inherited from GtkBuildable (1)

###### gtk_buildable_get_buildable_id

Gets the ID of the `buildable` object.

##### Methods inherited from GtkEditable (24)

Please see GtkEditable for a full list of methods.

#### Properties

###### Gtk.SearchEntry:activates-default

Whether to activate the default widget when Enter is pressed.

###### Gtk.SearchEntry:input-hints

The hints about input for the `GtkSearchEntry` used to alter the behaviour of input methods.

since: 4.14

###### Gtk.SearchEntry:input-purpose

The purpose for the `GtkSearchEntry` input used to alter the behaviour of input methods.

since: 4.14

###### Gtk.SearchEntry:placeholder-text

The text that will be displayed in the `GtkSearchEntry` when it is empty and unfocused.

###### Gtk.SearchEntry:search-delay

The delay in milliseconds from last keypress to the search changed signal.

since: 4.8

##### Properties inherited from GtkWidget (35)

###### Gtk.Widget:can-focus

Whether the widget or any of its descendents can accept the input focus.

###### Gtk.Widget:can-target

Whether the widget can receive pointer events.

###### Gtk.Widget:css-classes

A list of css classes applied to this widget.

###### Gtk.Widget:css-name

The name of this widget in the CSS tree.

###### Gtk.Widget:cursor

The cursor used by `widget`.

###### Gtk.Widget:focus-on-click

Whether the widget should grab focus when it is clicked with the mouse.

###### Gtk.Widget:focusable

Whether this widget itself will accept the input focus.

###### Gtk.Widget:halign

How to distribute horizontal space if widget gets extra space.

###### Gtk.Widget:has-default

Whether the widget is the default widget.

###### Gtk.Widget:has-focus

Whether the widget has the input focus.

###### Gtk.Widget:has-tooltip

Enables or disables the emission of the `GtkWidget::query-tooltip` signal on `widget`.

###### Gtk.Widget:height-request

Overrides for height request of the widget.

###### Gtk.Widget:hexpand

Whether to expand horizontally.

###### Gtk.Widget:hexpand-set

Whether to use the `hexpand` property.

###### Gtk.Widget:layout-manager

The `GtkLayoutManager` instance to use to compute the preferred size of the widget, and allocate its children.

###### Gtk.Widget:limit-events

Makes this widget act like a modal dialog, with respect to event delivery.

since: 4.18

###### Gtk.Widget:margin-bottom

Margin on bottom side of widget.

###### Gtk.Widget:margin-end

Margin on end of widget, horizontally.

###### Gtk.Widget:margin-start

Margin on start of widget, horizontally.

###### Gtk.Widget:margin-top

Margin on top side of widget.

###### Gtk.Widget:name

The name of the widget.

###### Gtk.Widget:opacity

The requested opacity of the widget.

###### Gtk.Widget:overflow

How content outside the widget’s content area is treated.

###### Gtk.Widget:parent

The parent widget of this widget.

###### Gtk.Widget:receives-default

Whether the widget will receive the default action when it is focused.

###### Gtk.Widget:root

The `GtkRoot` widget of the widget tree containing this widget.

###### Gtk.Widget:scale-factor

The scale factor of the widget.

###### Gtk.Widget:sensitive

Whether the widget responds to input.

###### Gtk.Widget:tooltip-markup

Sets the text of tooltip to be the given string, which is marked up with Pango markup.

###### Gtk.Widget:tooltip-text

Sets the text of tooltip to be the given string.

###### Gtk.Widget:valign

How to distribute vertical space if widget gets extra space.

###### Gtk.Widget:vexpand

Whether to expand vertically.

###### Gtk.Widget:vexpand-set

Whether to use the `vexpand` property.

###### Gtk.Widget:visible

Whether the widget is visible.

###### Gtk.Widget:width-request

Overrides for width request of the widget.

##### Properties inherited from GtkAccessible (1)

###### GtkAccessible:accessible-role

The accessible role of the given `GtkAccessible` implementation.

##### Properties inherited from GtkEditable (8)

###### GtkEditable:cursor-position

The current position of the insertion cursor in chars.

###### GtkEditable:editable

Whether the entry contents can be edited.

###### GtkEditable:enable-undo

If undo/redo should be enabled for the editable.

###### GtkEditable:max-width-chars

The desired maximum width of the entry, in characters.

###### GtkEditable:selection-bound

The position of the opposite end of the selection from the cursor in chars.

###### GtkEditable:text

The contents of the entry.

###### GtkEditable:width-chars

Number of characters to leave space for in the entry.

###### GtkEditable:xalign

The horizontal alignment, from 0 (left) to 1 (right).

#### Signals

###### Gtk.SearchEntry::activate

Emitted when the entry is activated.

###### Gtk.SearchEntry::next-match

Emitted when the user initiates a move to the next match for the current search string.

###### Gtk.SearchEntry::previous-match

Emitted when the user initiates a move to the previous match for the current search string.

###### Gtk.SearchEntry::search-changed

Emitted with a delay. The length of the delay can be changed with the `GtkSearchEntry:search-delay` property.

###### Gtk.SearchEntry::search-started

Emitted when the user initiated a search on the entry.

###### Gtk.SearchEntry::stop-search

Emitted when the user stops a search via keyboard input.

##### Signals inherited from GtkWidget (13)

###### GtkWidget::destroy

Signals that all holders of a reference to the widget should release the reference that they hold.

###### GtkWidget::direction-changed

Emitted when the text direction of a widget changes.

###### GtkWidget::hide

Emitted when `widget` is hidden.

###### GtkWidget::keynav-failed

Emitted if keyboard navigation fails.

###### GtkWidget::map

Emitted when `widget` is going to be mapped.

###### GtkWidget::mnemonic-activate

Emitted when a widget is activated via a mnemonic.

###### GtkWidget::move-focus

Emitted when the focus is moved.

###### GtkWidget::query-tooltip

Emitted when the widget’s tooltip is about to be shown.

###### GtkWidget::realize

Emitted when `widget` is associated with a `GdkSurface`.

###### GtkWidget::show

Emitted when `widget` is shown.

###### GtkWidget::state-flags-changed

Emitted when the widget state changes.

###### GtkWidget::unmap

Emitted when `widget` is going to be unmapped.

###### GtkWidget::unrealize

Emitted when the `GdkSurface` associated with `widget` is destroyed.

##### Signals inherited from GObject (1)

###### GObject::notify

The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.

##### Signals inherited from GtkEditable (3)

###### GtkEditable::changed

Emitted at the end of a single user-visible operation on the contents.

###### GtkEditable::delete-text

Emitted when text is deleted from the widget by the user.

###### GtkEditable::insert-text

Emitted when text is inserted into the widget by the user.