Frame

class Frame(**properties: Any)

Superclasses: Widget, InitiallyUnowned, Object

Implemented Interfaces: Accessible, Buildable, ConstraintTarget

GtkFrame is a widget that surrounds its child with a decorative frame and an optional label.

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

If present, the label is drawn inside the top edge of the frame. The horizontal position of the label can be controlled with set_label_align.

GtkFrame clips its child. You can use this to add rounded corners to widgets, but be aware that it also cuts off shadows.

GtkFrame as GtkBuildable

The GtkFrame implementation of the GtkBuildable interface supports placing a child in the label position by specifying “label” as the “type” attribute of a <child> element. A normal content child can be specified without specifying a <child> type attribute.

An example of a UI definition fragment with GtkFrame:

<object class="GtkFrame">
  <child type="label">
    <object class="GtkLabel" id="frame_label"/>
  </child>
  <child>
    <object class="GtkEntry" id="frame_content"/>
  </child>
</object>

CSS nodes

frame
├── <label widget>
╰── <child>

GtkFrame has a main CSS node with name “frame”, which is used to draw the visible border. You can set the appearance of the border using CSS properties like “border-style” on this node.

Accessibility

GtkFrame uses the GTK_ACCESSIBLE_ROLE_GROUP role.

Constructors

class Frame
classmethod new(label: str | None = None) Widget

Creates a new GtkFrame, with optional label label.

If label is None, the label is omitted.

Parameters:

label – the text to use as the label of the frame

Methods

class Frame
get_child() Widget | None

Gets the child widget of frame.

get_label() str | None

Returns the frame labels text.

If the frame’s label widget is not a GtkLabel, None is returned.

get_label_align() float

Retrieves the X alignment of the frame’s label.

get_label_widget() Widget | None

Retrieves the label widget for the frame.

set_child(child: Widget | None = None) None

Sets the child widget of frame.

Parameters:

child – the child widget

set_label(label: str | None = None) None

Creates a new GtkLabel with the label and sets it as the frame’s label widget.

Parameters:

label – the text to use as the label of the frame

set_label_align(xalign: float) None

Sets the X alignment of the frame widget’s label.

The default value for a newly created frame is 0.0.

Parameters:

xalign – The position of the label along the top edge of the widget. A value of 0.0 represents left alignment; 1.0 represents right alignment.

set_label_widget(label_widget: Widget | None = None) None

Sets the label widget for the frame.

This is the widget that will appear embedded in the top edge of the frame as a title.

Parameters:

label_widget – the new label widget

Properties

class Frame
props.child: Widget

The child widget.

props.label: str

Text of the frame’s label.

props.label_widget: Widget

Widget to display in place of the usual frame label.

props.label_xalign: float

The horizontal alignment of the label.

Virtual Methods

class Frame
do_compute_child_allocation(allocation: Rectangle) None
Parameters:

allocation

Fields

class Frame
parent_instance