Overlay#

class Overlay(**properties: Any)#

Superclasses: Widget, InitiallyUnowned, Object

Implemented Interfaces: Accessible, Buildable, ConstraintTarget

GtkOverlay is a container which contains a single main child, on top of which it can place “overlay” widgets.

https://docs.gtk.org/gtk4/overlay.png

The position of each overlay widget is determined by its halign and valign properties. E.g. a widget with both alignments set to START will be placed at the top left corner of the GtkOverlay container, whereas an overlay with halign set to CENTER and valign set to END will be placed a the bottom edge of the GtkOverlay, horizontally centered. The position can be adjusted by setting the margin properties of the child to non-zero values.

More complicated placement of overlays is possible by connecting to the get_child_position signal.

An overlay’s minimum and natural sizes are those of its main child. The sizes of overlay children are not considered when measuring these preferred sizes.

GtkOverlay as GtkBuildable#

The GtkOverlay implementation of the GtkBuildable interface supports placing a child as an overlay by specifying “overlay” as the “type” attribute of a <child> element.

CSS nodes#

GtkOverlay has a single CSS node with the name “overlay”. Overlay children whose alignments cause them to be positioned at an edge get the style classes “.left”, “.right”, “.top”, and/or “.bottom” according to their position.

Constructors#

class Overlay
classmethod new() Widget#

Creates a new GtkOverlay.

Methods#

class Overlay
add_overlay(widget: Widget) None#

Adds widget to overlay.

The widget will be stacked on top of the main widget added with set_child.

The position at which widget is placed is determined from its halign and valign properties.

Parameters:

widget – a GtkWidget to be added to the container

get_child() Widget | None#

Gets the child widget of overlay.

get_clip_overlay(widget: Widget) bool#

Gets whether widget should be clipped within the parent.

Parameters:

widget – an overlay child of GtkOverlay

get_measure_overlay(widget: Widget) bool#

Gets whether widget’s size is included in the measurement of overlay.

Parameters:

widget – an overlay child of GtkOverlay

remove_overlay(widget: Widget) None#

Removes an overlay that was added with add_overlay().

Parameters:

widget – a GtkWidget to be removed

set_child(child: Widget | None = None) None#

Sets the child widget of overlay.

Parameters:

child – the child widget

set_clip_overlay(widget: Widget, clip_overlay: bool) None#

Sets whether widget should be clipped within the parent.

Parameters:
  • widget – an overlay child of GtkOverlay

  • clip_overlay – whether the child should be clipped

set_measure_overlay(widget: Widget, measure: bool) None#

Sets whether widget is included in the measured size of overlay.

The overlay will request the size of the largest child that has this property set to True. Children who are not included may be drawn outside of overlay’s allocation if they are too large.

Parameters:
  • widget – an overlay child of GtkOverlay

  • measure – whether the child should be measured

Properties#

class Overlay
props.child: Widget#

The type of the None singleton.

Signals#

class Overlay.signals
get_child_position(widget: Widget) tuple[bool, Rectangle]#

The type of the None singleton.

Parameters:

widget – the child widget to position