Many convenience functions are provided to make pictures simple to use.
For example, if you want to load an image from a file, and then display
it, there’s a convenience function to do this:
If the file isn’t loaded successfully, the picture will contain a
“broken image” icon similar to that used in many web browsers.
If you want to handle errors in loading the file yourself,
for example by displaying an error message, then load the image with
gdk.texture.Texture.newFromFile, then create the gtk.picture.Picture with
gtk.picture.Picture.newForPaintable.
You can influence how the paintable is displayed inside the gtk.picture.Picture
by changing property@Gtk.Picture:content-fit. See gtk.types.ContentFit
for details. property@Gtk.Picture:can-shrink can be unset to make sure
that paintables are never made smaller than their ideal size - but
be careful if you do not know the size of the paintable in use (like
when displaying user-loaded images). This can easily cause the picture to
grow larger than the screen. And gtk.widget.Widget.Align and
gtk.widget.Widget.Align can be used to make sure the paintable doesn't
fill all available space but is instead displayed at its original size.
The gtk.picture.Picture widget displays a gdk.paintable.Paintable.
Many convenience functions are provided to make pictures simple to use. For example, if you want to load an image from a file, and then display it, there’s a convenience function to do this:
GtkWidget *widget = gtk_picture_new_for_filename ("myfile.png");
If the file isn’t loaded successfully, the picture will contain a “broken image” icon similar to that used in many web browsers. If you want to handle errors in loading the file yourself, for example by displaying an error message, then load the image with gdk.texture.Texture.newFromFile, then create the gtk.picture.Picture with gtk.picture.Picture.newForPaintable.
Sometimes an application will want to avoid depending on external data files, such as image files. See the documentation of gio.resource.Resource for details. In this case, gtk.picture.Picture.newForResource and gtk.picture.Picture.setResource should be used.
gtk.picture.Picture displays an image at its natural size. See gtk.image.Image if you want to display a fixed-size image, such as an icon.
Sizing the paintable
You can influence how the paintable is displayed inside the gtk.picture.Picture by changing property@Gtk.Picture:content-fit. See gtk.types.ContentFit for details. property@Gtk.Picture:can-shrink can be unset to make sure that paintables are never made smaller than their ideal size - but be careful if you do not know the size of the paintable in use (like when displaying user-loaded images). This can easily cause the picture to grow larger than the screen. And gtk.widget.Widget.Align and gtk.widget.Widget.Align can be used to make sure the paintable doesn't fill all available space but is instead displayed at its original size.
CSS nodes
gtk.picture.Picture has a single CSS node with the name picture.
Accessibility
gtk.picture.Picture uses the gtk.types.AccessibleRole.Img role.