Class

Gtk.Grid

Description [src]

class Gtk.Grid : Gtk.Widget {
  /* No available fields */
}

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 gtk_grid_attach(). They can span multiple rows or columns. It is also possible to add a child next to an existing child, using gtk_grid_attach_next_to(). To remove a child from the grid, use 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 GtkBuildable element, called ´´. It can by used to specify a position in the grid and optionally spans. All properties that can be used in the ´´ element are implemented by GtkGridLayoutChild.

It is implemented by GtkWidget using GtkLayoutManager.

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

GtkGrid uses the GTK_ACCESSIBLE_ROLE_GROUP role.

Hierarchy

Hierarchy for Gtk.Grid

Ancestors

Constructors

gtk_grid_new

Creates a new grid widget.

Instance methods

gtk_grid_attach

Adds a widget to the grid.

gtk_grid_attach_next_to

Adds a widget to the grid.

gtk_grid_get_baseline_row

Returns which row defines the global baseline of grid.

gtk_grid_get_child_at

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

gtk_grid_get_column_homogeneous

Returns whether all columns of grid have the same width.

gtk_grid_get_column_spacing

Returns the amount of space between the columns of grid.

gtk_grid_get_row_baseline_position

Returns the baseline position of row.

gtk_grid_get_row_homogeneous

Returns whether all rows of grid have the same height.

gtk_grid_get_row_spacing

Returns the amount of space between the rows of grid.

gtk_grid_insert_column

Inserts a column at the specified position.

gtk_grid_insert_next_to

Inserts a row or column at the specified position.

gtk_grid_insert_row

Inserts a row at the specified position.

gtk_grid_query_child

Queries the attach points and spans of child inside the given GtkGrid.

gtk_grid_remove

Removes a child from grid.

gtk_grid_remove_column

Removes a column from the grid.

gtk_grid_remove_row

Removes a row from the grid.

gtk_grid_set_baseline_row

Sets which row defines the global baseline for the entire grid.

gtk_grid_set_column_homogeneous

Sets whether all columns of grid will have the same width.

gtk_grid_set_column_spacing

Sets the amount of space between columns of grid.

gtk_grid_set_row_baseline_position

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

gtk_grid_set_row_homogeneous

Sets whether all rows of grid will have the same height.

gtk_grid_set_row_spacing

Sets the amount of space between rows of grid.

Methods inherited from GtkWidget (159)
Methods inherited from GtkAccessible (10)
gtk_accessible_get_accessible_role

Retrieves the GtkAccessibleRole for the given GtkAccessible.

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_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. See the GtkAccessibleState documentation for the value types 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 GtkOrientable (2)
gtk_orientable_get_orientation

Retrieves the orientation of the orientable.

gtk_orientable_set_orientation

Sets the orientation of the orientable.

Properties

Gtk.Grid:baseline-row

The row to align to the baseline when valign is GTK_ALIGN_BASELINE.

Gtk.Grid:column-homogeneous

If TRUE, the columns are all the same width.

Gtk.Grid:column-spacing

The amount of space between two consecutive columns.

Gtk.Grid:row-homogeneous

If TRUE, the rows are all the same height.

Gtk.Grid:row-spacing

The amount of space between two consecutive rows.

Properties inherited from GtkWidget (34)
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 ::query-tooltip signal on widget.

Gtk.Widget:height-request

Override 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: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

Override for width request of the widget.

Properties inherited from GtkAccessible (1)
Gtk.Accessible:accessible-role

The accessible role of the given GtkAccessible implementation.

Properties inherited from GtkOrientable (1)
Gtk.Orientable:orientation

The orientation of the orientable.

Class structure

struct GtkGridClass {
  GtkWidgetClass parent_class;
  
}
Class members
parent_class
GtkWidgetClass
 

The parent class.