Grid

open class Grid(pointer: <Error class: unknown class><<Error class: unknown class>>) : Widget, Orientable

GtkGrid is a container which arranges its child widgets in rows and columns.

An example GtkGrid

It supports arbitrary positions and horizontal/vertical spans.

Children are added using method@Gtk.Grid.attach. They can span multiple rows or columns. It is also possible to add a child next to an existing child, using method@Gtk.Grid.attach_next_to. To remove a child from the grid, use method@Gtk.Grid.remove.

The behaviour of GtkGrid when several children occupy the same grid cell is undefined.

GtkGrid as GtkBuildable

Every child in a GtkGrid has access to a custom iface@Gtk.Buildable element, called <layout>. It can by used to specify a position in the grid and optionally spans. All properties that can be used in the <layout> element are implemented by class@Gtk.GridLayoutChild.

It is implemented by GtkWidget using class@Gtk.LayoutManager.

To showcase it, here is a simple example:

<object class="GtkGrid" id="my_grid">
<child>
<object class="GtkButton" id="button1">
<property name="label">Button 1</property>
<layout>
<property name="column">0</property>
<property name="row">0</property>
</layout>
</object>
</child>
<child>
<object class="GtkButton" id="button2">
<property name="label">Button 2</property>
<layout>
<property name="column">1</property>
<property name="row">0</property>
</layout>
</object>
</child>
<child>
<object class="GtkButton" id="button3">
<property name="label">Button 3</property>
<layout>
<property name="column">2</property>
<property name="row">0</property>
<property name="row-span">2</property>
</layout>
</object>
</child>
<child>
<object class="GtkButton" id="button4">
<property name="label">Button 4</property>
<layout>
<property name="column">0</property>
<property name="row">1</property>
<property name="column-span">2</property>
</layout>
</object>
</child>
</object>

It organizes the first two buttons side-by-side in one cell each. The third button is in the last column but spans across two rows. This is defined by the row-span property. The last button is located in the second row and spans across two columns, which is defined by the column-span property.

CSS nodes

GtkGrid uses a single CSS node with name grid.

Accessibility

Until GTK 4.10, GtkGrid used the GTK_ACCESSIBLE_ROLE_GROUP role.

Starting from GTK 4.12, GtkGrid uses the GTK_ACCESSIBLE_ROLE_GENERIC role.

Skipped during bindings generation

  • parameter column: column: Out parameter is not supported

Constructors

Link copied to clipboard
constructor()

Creates a new grid widget.

constructor(pointer: <Error class: unknown class><<Error class: unknown class>>)

Types

Link copied to clipboard
object Companion

Properties

Link copied to clipboard

The accessible role of the given GtkAccessible implementation.

Link copied to clipboard
open var baselineRow: <Error class: unknown class>

The row to align to the baseline when valign is using baseline alignment.

Link copied to clipboard
open var canFocus: Boolean

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

Link copied to clipboard
open var canTarget: Boolean

Whether the widget can receive pointer events.

Link copied to clipboard

If true, the columns are all the same width.

Link copied to clipboard
open var columnSpacing: <Error class: unknown class>

The amount of space between two consecutive columns.

Link copied to clipboard

A list of css classes applied to this widget.

Link copied to clipboard
open val cssName: String

The name of this widget in the CSS tree.

Link copied to clipboard
open var cursor: <Error class: unknown class>?

The cursor used by @widget.

Link copied to clipboard
open var focusable: Boolean

Whether this widget itself will accept the input focus.

Link copied to clipboard

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

Link copied to clipboard
open override val gtkAccessiblePointer: <Error class: unknown class><<Error class: unknown class>>
Link copied to clipboard
open override val gtkBuildablePointer: <Error class: unknown class><<Error class: unknown class>>
Link copied to clipboard
open override val gtkConstraintTargetPointer: <Error class: unknown class><<Error class: unknown class>>
Link copied to clipboard
val gtkGridPointer: <Error class: unknown class><<Error class: unknown class>>
Link copied to clipboard
open override val gtkOrientablePointer: <Error class: unknown class><<Error class: unknown class>>
Link copied to clipboard
val gtkWidgetPointer: <Error class: unknown class><<Error class: unknown class>>
Link copied to clipboard
open var halign: Align

How to distribute horizontal space if widget gets extra space.

Link copied to clipboard

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

Link copied to clipboard
open var hexpand: Boolean

Whether to expand horizontally.

Link copied to clipboard

Whether to use the hexpand property.

Link copied to clipboard

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

Link copied to clipboard
open var marginBottom: <Error class: unknown class>

Margin on bottom side of widget.

Link copied to clipboard
open var marginEnd: <Error class: unknown class>

Margin on end of widget, horizontally.

Link copied to clipboard
open var marginStart: <Error class: unknown class>

Margin on start of widget, horizontally.

Link copied to clipboard
open var marginTop: <Error class: unknown class>

Margin on top side of widget.

Link copied to clipboard
open var name: String

The name of the widget.

Link copied to clipboard
open var opacity: <Error class: unknown class>

The requested opacity of the widget.

Link copied to clipboard

The orientation of the orientable.

Link copied to clipboard
open var overflow: Overflow

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

Link copied to clipboard
open val parent: Widget?

The parent widget of this widget.

Link copied to clipboard

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

Link copied to clipboard
open val root: Root?

The GtkRoot widget of the widget tree containing this widget.

Link copied to clipboard

If true, the rows are all the same height.

Link copied to clipboard
open var rowSpacing: <Error class: unknown class>

The amount of space between two consecutive rows.

Link copied to clipboard
open val scaleFactor: <Error class: unknown class>

The scale factor of the widget.

Link copied to clipboard

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

Link copied to clipboard
open var tooltipText: String?

Sets the text of tooltip to be the given string.

Link copied to clipboard
open var valign: Align

How to distribute vertical space if widget gets extra space.

Link copied to clipboard
open var vexpand: Boolean

Whether to expand vertically.

Link copied to clipboard

Whether to use the vexpand property.

Functions

Link copied to clipboard
open fun actionSetEnabled(actionName: String, enabled: Boolean)

Enable or disable an action installed with gtk_widget_class_install_action().

Link copied to clipboard
open fun activateActionIfExists(name: String, args: <Error class: unknown class>? = null): Boolean

Looks up the action in the action groups associated with

Link copied to clipboard
open fun activateDefault()

Activates the default.activate action from @widget.

Link copied to clipboard

For widgets that can be “activated” (buttons, menu items, etc.), this function activates them.

Link copied to clipboard
open fun addController(controller: EventController)

Adds @controller to @widget so that it will receive events.

Link copied to clipboard
open fun addCssClass(cssClass: String)

Adds a style class to @widget.

Link copied to clipboard
open fun addMnemonicLabel(label: Widget)

Adds a widget to the list of mnemonic labels for this widget.

Link copied to clipboard
open fun addTickCallback(callback: TickCallback): <Error class: unknown class>

Queues an animation frame update and adds a callback to be called before each frame.

Link copied to clipboard
open fun allocate(width: <Error class: unknown class>, height: <Error class: unknown class>, baseline: <Error class: unknown class>, transform: <Error class: unknown class>? = null)

This function is only used by GtkWidget subclasses, to assign a size, position and (optionally) baseline to their child widgets.

Link copied to clipboard
open fun announce(message: String, priority: AccessibleAnnouncementPriority)

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

Link copied to clipboard
open fun attach(child: Widget, column: <Error class: unknown class>, row: <Error class: unknown class>, width: <Error class: unknown class>, height: <Error class: unknown class>)

Adds a widget to the grid.

Link copied to clipboard
open fun attachNextTo(child: Widget, sibling: Widget? = null, side: PositionType, width: <Error class: unknown class>, height: <Error class: unknown class>)

Adds a widget to the grid.

Link copied to clipboard
open fun childFocus(direction: DirectionType): Boolean

Called by widgets as the user moves around the window using keyboard shortcuts.

Link copied to clipboard
open fun computeBounds(target: Widget, outBounds: <Error class: unknown class>): Boolean

Computes the bounds for @widget in the coordinate space of @target.

Link copied to clipboard
open fun computeExpand(orientation: Orientation): Boolean

Computes whether a container should give this widget extra space when possible.

Link copied to clipboard
open fun computePoint(target: Widget, point: <Error class: unknown class>, outPoint: <Error class: unknown class>): Boolean

Translates the given @point in @widget's coordinates to coordinates relative to @target’s coordinate system.

Link copied to clipboard
open fun computeTransform(target: Widget, outTransform: <Error class: unknown class>): Boolean

Computes a matrix suitable to describe a transformation from

Link copied to clipboard
fun connectDestroy(connectFlags: <Error class: unknown class> = ConnectFlags(0u), handler: () -> Unit): <Error class: unknown class>

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

Link copied to clipboard
fun connectDirectionChanged(connectFlags: <Error class: unknown class> = ConnectFlags(0u), handler: (previousDirection: TextDirection) -> Unit): <Error class: unknown class>

Emitted when the text direction of a widget changes.

Link copied to clipboard
fun connectHide(connectFlags: <Error class: unknown class> = ConnectFlags(0u), handler: () -> Unit): <Error class: unknown class>

Emitted when @widget is hidden.

Link copied to clipboard
fun connectKeynavFailed(connectFlags: <Error class: unknown class> = ConnectFlags(0u), handler: (direction: DirectionType) -> Boolean): <Error class: unknown class>

Emitted if keyboard navigation fails.

Link copied to clipboard
fun connectMap(connectFlags: <Error class: unknown class> = ConnectFlags(0u), handler: () -> Unit): <Error class: unknown class>

Emitted when @widget is going to be mapped.

Link copied to clipboard
fun connectMnemonicActivate(connectFlags: <Error class: unknown class> = ConnectFlags(0u), handler: (groupCycling: Boolean) -> Boolean): <Error class: unknown class>

Emitted when a widget is activated via a mnemonic.

Link copied to clipboard
fun connectMoveFocus(connectFlags: <Error class: unknown class> = ConnectFlags(0u), handler: (direction: DirectionType) -> Unit): <Error class: unknown class>

Emitted when the focus is moved.

Link copied to clipboard
fun connectQueryTooltip(connectFlags: <Error class: unknown class> = ConnectFlags(0u), handler: (<Error class: unknown class>, <Error class: unknown class>, keyboardMode: Boolean, tooltip: Tooltip) -> Boolean): <Error class: unknown class>

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

Link copied to clipboard
fun connectRealize(connectFlags: <Error class: unknown class> = ConnectFlags(0u), handler: () -> Unit): <Error class: unknown class>

Emitted when @widget is associated with a GdkSurface.

Link copied to clipboard
fun connectShow(connectFlags: <Error class: unknown class> = ConnectFlags(0u), handler: () -> Unit): <Error class: unknown class>

Emitted when @widget is shown.

Link copied to clipboard
fun connectStateFlagsChanged(connectFlags: <Error class: unknown class> = ConnectFlags(0u), handler: (flags: StateFlags) -> Unit): <Error class: unknown class>

Emitted when the widget state changes.

Link copied to clipboard
fun connectUnmap(connectFlags: <Error class: unknown class> = ConnectFlags(0u), handler: () -> Unit): <Error class: unknown class>

Emitted when @widget is going to be unmapped.

Link copied to clipboard
fun connectUnrealize(connectFlags: <Error class: unknown class> = ConnectFlags(0u), handler: () -> Unit): <Error class: unknown class>

Emitted when the GdkSurface associated with @widget is destroyed.

Link copied to clipboard
open fun contains(x: <Error class: unknown class>, y: <Error class: unknown class>): Boolean

Tests if the point at (@x, @y) is contained in @widget.

Link copied to clipboard
open fun createPangoContext(): <Error class: unknown class>

Creates a new PangoContext with the appropriate font map, font options, font description, and base direction for drawing text for this widget.

Link copied to clipboard
open fun createPangoLayout(text: String? = null): <Error class: unknown class>

Creates a new PangoLayout with the appropriate font map, font description, and base direction for drawing text for this widget.

Link copied to clipboard
open fun disposeTemplate(widgetType: <Error class: unknown class>)

Clears the template children for the given widget.

Link copied to clipboard
open fun dragCheckThreshold(startX: <Error class: unknown class>, startY: <Error class: unknown class>, currentX: <Error class: unknown class>, currentY: <Error class: unknown class>): Boolean

Checks to see if a drag movement has passed the GTK drag threshold.

Link copied to clipboard
open fun errorBell()

Notifies the user about an input-related error on this widget.

Link copied to clipboard

Retrieves the accessible parent for an accessible object.

Link copied to clipboard

Retrieves the accessible role of an accessible object.

Link copied to clipboard
open fun getAllocatedBaseline(): <Error class: unknown class>

Returns the baseline that has currently been allocated to @widget.

Link copied to clipboard
open fun getAllocatedHeight(): <Error class: unknown class>

Returns the height that has currently been allocated to @widget.

Link copied to clipboard
open fun getAllocatedWidth(): <Error class: unknown class>

Returns the width that has currently been allocated to @widget.

Link copied to clipboard
open fun getAncestor(widgetType: <Error class: unknown class>): Widget?

Gets the first ancestor of @widget with type @widget_type.

Link copied to clipboard

Retrieves the accessible implementation for the given GtkAccessible.

Link copied to clipboard
open fun getBaseline(): <Error class: unknown class>

Returns the baseline that has currently been allocated to @widget.

Link copied to clipboard
open fun getBuildableId(): String?

Gets the ID of the @buildable object.

Link copied to clipboard
open fun getChildAt(column: <Error class: unknown class>, row: <Error class: unknown class>): Widget?

Gets the child of @grid whose area covers the grid cell at @column, @row.

Link copied to clipboard

Gets the value set with gtk_widget_set_child_visible().

Link copied to clipboard
open fun getClipboard(): <Error class: unknown class>

Gets the clipboard object for @widget.

Link copied to clipboard
open fun getColor(color: <Error class: unknown class>)

Gets the current foreground color for the widget’s CSS style.

Link copied to clipboard

Gets the reading direction for a particular widget.

Link copied to clipboard
open fun getDisplay(): <Error class: unknown class>

Get the GdkDisplay for the toplevel window associated with this widget.

Link copied to clipboard

Retrieves the first accessible child of an accessible object.

Link copied to clipboard
open fun getFirstChild(): Widget?

Returns the widget’s first child.

Link copied to clipboard
open fun getFocusChild(): Widget?

Returns the current focus child of @widget.

Link copied to clipboard
open fun getFontMap(): <Error class: unknown class>?

Gets the font map of @widget.

Link copied to clipboard
open fun getFrameClock(): <Error class: unknown class>?

Obtains the frame clock for a widget.

Link copied to clipboard
open fun getHeight(): <Error class: unknown class>

Returns the content height of the widget.

Link copied to clipboard
open fun getLastChild(): Widget?

Returns the widget’s last child.

Link copied to clipboard
open fun getMapped(): Boolean

Whether the widget is mapped.

Link copied to clipboard
open fun getNative(): Native?

Returns the nearest GtkNative ancestor of @widget.

Link copied to clipboard

Retrieves the next accessible sibling of an accessible object

Link copied to clipboard
open fun getNextSibling(): Widget?

Returns the widget’s next sibling.

Link copied to clipboard

Retrieves the orientation of the @orientable.

Link copied to clipboard
open fun getPangoContext(): <Error class: unknown class>

Gets a PangoContext with the appropriate font map, font description, and base direction for this widget.

Link copied to clipboard

Query a platform state, such as focus.

Link copied to clipboard
open fun getPreferredSize(minimumSize: Requisition?, naturalSize: Requisition?)

Retrieves the minimum and natural size of a widget, taking into account the widget’s preference for height-for-width management.

Link copied to clipboard
open fun getPrevSibling(): Widget?

Returns the widget’s previous sibling.

Link copied to clipboard
open fun getPrimaryClipboard(): <Error class: unknown class>

Gets the primary clipboard of @widget.

Link copied to clipboard
open fun getRealized(): Boolean

Determines whether @widget is realized.

Link copied to clipboard

Gets whether the widget prefers a height-for-width layout or a width-for-height layout.

Link copied to clipboard
open fun getRowBaselinePosition(row: <Error class: unknown class>): BaselinePosition

Returns the baseline position of @row.

Link copied to clipboard
open fun getSensitive(): Boolean

Returns the widget’s sensitivity.

Link copied to clipboard
open fun getSettings(): Settings

Gets the settings object holding the settings used for this widget.

Link copied to clipboard
open fun getSize(orientation: Orientation): <Error class: unknown class>

Returns the content width or height of the widget.

Link copied to clipboard

Returns the widget state as a flag set.

Link copied to clipboard

Returns the style context associated to @widget.

Link copied to clipboard
open fun getTemplateChild(widgetType: <Error class: unknown class>, name: String): <Error class: unknown class>

Fetch an object build from the template XML for @widget_type in this @widget instance.

Link copied to clipboard
open fun getVisible(): Boolean

Determines whether the widget is visible.

Link copied to clipboard
open fun getWidth(): <Error class: unknown class>

Returns the content width of the widget.

Link copied to clipboard
open fun grabFocus(): Boolean

Causes @widget to have the keyboard focus for the GtkWindow it's inside.

Link copied to clipboard
open fun hasCssClass(cssClass: String): Boolean

Returns whether @css_class is currently applied to @widget.

Link copied to clipboard
open fun hasDefault(): Boolean

Determines whether @widget is the current default widget within its toplevel.

Link copied to clipboard
open fun hasFocus(): Boolean

Determines if the widget has the global input focus.

Link copied to clipboard

Determines if the widget should show a visible indication that it has the global input focus.

Link copied to clipboard
open fun hide()

Reverses the effects of gtk_widget_show().

Link copied to clipboard

Returns whether the widget is currently being destroyed.

Link copied to clipboard
open fun initTemplate()

Creates and initializes child widgets defined in templates.

Link copied to clipboard
open fun insertActionGroup(name: String, group: <Error class: unknown class>? = null)

Inserts @group into @widget.

Link copied to clipboard
open fun insertAfter(parent: Widget, previousSibling: Widget? = null)

Inserts @widget into the child widget list of @parent.

Link copied to clipboard
open fun insertBefore(parent: Widget, nextSibling: Widget? = null)

Inserts @widget into the child widget list of @parent.

Link copied to clipboard
open fun insertColumn(position: <Error class: unknown class>)

Inserts a column at the specified position.

Link copied to clipboard
open fun insertNextTo(sibling: Widget, side: PositionType)

Inserts a row or column at the specified position.

Link copied to clipboard
open fun insertRow(position: <Error class: unknown class>)

Inserts a row at the specified position.

Link copied to clipboard
open fun isAncestor(ancestor: Widget): Boolean

Determines whether @widget is somewhere inside @ancestor, possibly with intermediate containers.

Link copied to clipboard
open fun isDrawable(): Boolean

Determines whether @widget can be drawn to.

Link copied to clipboard
open fun isFocus(): Boolean

Determines if the widget is the focus widget within its toplevel.

Link copied to clipboard
open fun isSensitive(): Boolean

Returns the widget’s effective sensitivity.

Link copied to clipboard
open fun isVisible(): Boolean

Determines whether the widget and all its parents are marked as visible.

Link copied to clipboard
open fun keynavFailed(direction: DirectionType): Boolean

Emits the ::keynav-failed signal on the widget.

Link copied to clipboard
open fun listMnemonicLabels(): <Error class: unknown class>

Returns the widgets for which this widget is the target of a mnemonic.

Link copied to clipboard
open fun map()

Causes a widget to be mapped if it isn’t already.

Link copied to clipboard
open fun mnemonicActivate(groupCycling: Boolean): Boolean

Emits the ::mnemonic-activate signal.

Link copied to clipboard
open fun observeChildren(): <Error class: unknown class>

Returns a GListModel to track the children of @widget.

Link copied to clipboard
open fun observeControllers(): <Error class: unknown class>

Returns a GListModel to track the class@Gtk.EventControllers of @widget.

Link copied to clipboard
open fun pick(x: <Error class: unknown class>, y: <Error class: unknown class>, flags: PickFlags): Widget?

Finds the descendant of @widget closest to the point (@x, @y).

Link copied to clipboard
open fun queueAllocate()

Flags the widget for a rerun of the vfunc@Gtk.Widget.size_allocate function.

Link copied to clipboard
open fun queueDraw()

Schedules this widget to be redrawn in the paint phase of the current or the next frame.

Link copied to clipboard
open fun queueResize()

Flags a widget to have its size renegotiated.

Link copied to clipboard
open fun realize()

Creates the GDK resources associated with a widget.

Link copied to clipboard
open fun remove(child: Widget)

Removes a child from @grid.

Link copied to clipboard
open fun removeColumn(position: <Error class: unknown class>)

Removes a column from the grid.

Link copied to clipboard
open fun removeController(controller: EventController)

Removes @controller from @widget, so that it doesn't process events anymore.

Link copied to clipboard
open fun removeCssClass(cssClass: String)

Removes a style from @widget.

Link copied to clipboard
open fun removeMnemonicLabel(label: Widget)

Removes a widget from the list of mnemonic labels for this widget.

Link copied to clipboard
open fun removeRow(position: <Error class: unknown class>)

Removes a row from the grid.

Link copied to clipboard
open fun removeTickCallback(id: <Error class: unknown class>)

Removes a tick callback previously registered with gtk_widget_add_tick_callback().

Link copied to clipboard
open fun resetProperty(property: AccessibleProperty)

Resets the accessible @property to its default value.

Link copied to clipboard
open fun resetRelation(relation: AccessibleRelation)

Resets the accessible @relation to its default value.

Link copied to clipboard
open fun resetState(state: AccessibleState)

Resets the accessible @state to its default value.

Link copied to clipboard
open fun setAccessibleParent(parent: Accessible? = null, nextSibling: Accessible? = null)

Sets the parent and sibling of an accessible object.

Link copied to clipboard
open fun setChildVisible(childVisible: Boolean)

Sets whether @widget should be mapped along with its parent.

Link copied to clipboard
open fun setCursorFromName(name: String? = null)

Sets a named cursor to be shown when pointer devices point towards @widget.

Link copied to clipboard

Sets the reading direction on a particular widget.

Link copied to clipboard
open fun setFocusChild(child: Widget? = null)

Set @child as the current focus child of @widget.

Link copied to clipboard
open fun setFontMap(fontMap: <Error class: unknown class>? = null)

Sets the font map to use for Pango rendering.

Link copied to clipboard

Set all margins to the same value.

fun Widget.setMargins(horizontal: Int = 0, vertical: Int = 0)

Set start and end margin to horizontal and top and bottom margin to vertical

fun Widget.setMargins(start: Int = 0, top: Int = 0, end: Int = 0, bottom: Int = 0)

Set margins.

Link copied to clipboard
open fun setOrientation(orientation: Orientation)

Sets the orientation of the @orientable.

Link copied to clipboard
open fun setParent(parent: Widget)

Sets @parent as the parent widget of @widget.

Link copied to clipboard
open fun setRowBaselinePosition(row: <Error class: unknown class>, pos: BaselinePosition)

Sets how the baseline should be positioned on @row of the grid, in case that row is assigned more space than is requested.

Link copied to clipboard
open fun setSensitive(sensitive: Boolean)

Sets the sensitivity of a widget.

Link copied to clipboard
open fun setSizeRequest(width: <Error class: unknown class>, height: <Error class: unknown class>)

Sets the minimum size of a widget.

Link copied to clipboard
open fun setStateFlags(flags: StateFlags, clear: Boolean)

Turns on flag values in the current widget state.

Link copied to clipboard
open fun setVisible(visible: Boolean)

Sets the visibility state of @widget.

Link copied to clipboard
open fun shouldLayout(): Boolean

Returns whether @widget should contribute to the measuring and allocation of its parent.

Link copied to clipboard
open fun show()

Flags a widget to be displayed.

Link copied to clipboard

Triggers a tooltip query on the display where the toplevel of @widget is located.

Link copied to clipboard
open fun unmap()

Causes a widget to be unmapped if it’s currently mapped.

Link copied to clipboard
open fun unparent()

Dissociate @widget from its parent.

Link copied to clipboard
open fun unrealize()

Causes a widget to be unrealized (frees all GDK resources associated with the widget).

Link copied to clipboard
open fun unsetStateFlags(flags: StateFlags)

Turns off flag values for the current widget state.

Link copied to clipboard
open fun updateNextAccessibleSibling(newSibling: Accessible? = null)

Updates the next accessible sibling of @self.