Skip to content

Gtk.WidgetPaintable

class — extends GObject.Object, Gdk.Paintable

A GdkPaintable that displays the contents of a widget.

GtkWidgetPaintable will also take care of the widget not being in a state where it can be drawn (like when it isn't shown) and just draw nothing or where it does not have a size (like when it is hidden) and report no size in that case.

Of course, GtkWidgetPaintable allows you to monitor widgets for size changes by emitting the Gdk.Paintable.invalidate-size signal whenever the size of the widget changes as well as for visual changes by emitting the Gdk.Paintable.invalidate-contents signal whenever the widget changes.

You can use a GtkWidgetPaintable everywhere a GdkPaintable is allowed, including using it on a GtkPicture (or one of its parents) that it was set on itself via Picture.set_paintable. The paintable will take care of recursion when this happens. If you do this however, ensure that the Picture.can-shrink property is set to True or you might end up with an infinitely growing widget.

Constructors

new

@classmethod
def new(cls, widget: Widget | None = ...) -> WidgetPaintable

Creates a new widget paintable observing the given widget.

Parameters:

  • widget — a GtkWidget

Methods

get_widget

def get_widget(self) -> Widget | None

Returns the widget that is observed or None if none.

set_widget

def set_widget(self, widget: Widget | None = ...) -> None

Sets the widget that should be observed.

Parameters:

  • widget — the widget to observe

Properties

widget

widget: Widget  # read/write

The observed widget or None if none.