Struct gtk::Image [−][src]
pub struct Image(_);
Expand description
The Image
widget displays an image. Various kinds of object
can be displayed as an image; most typically, you would load a
gdk_pixbuf::Pixbuf
(“pixel buffer”) from a file, and then display that.
There’s a convenience function to do this, from_file()
,
used as follows:
⚠️ The following code is in C ⚠️
GtkWidget *image;
image = gtk_image_new_from_file ("myfile.png");
If the file isn’t loaded successfully, the image 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_pixbuf::Pixbuf::from_file()
, then create the Image
with
from_pixbuf()
.
The image file may contain an animation, if so the Image
will
display an animation (gdk_pixbuf::PixbufAnimation
) instead of a static image.
Image
is a subclass of Misc
, which implies that you can
align it (center, left, right) and add padding to it, using
Misc
methods.
Image
is a “no window” widget (has no gdk::Window
of its own),
so by default does not receive events. If you want to receive events
on the image, such as button clicks, place the image inside a
EventBox
, then connect to the event signals on the event box.
Handling button press events on a Image
.
⚠️ The following code is in C ⚠️
static gboolean
button_press_callback (GtkWidget *event_box,
GdkEventButton *event,
gpointer data)
{
g_print ("Event box clicked at coordinates %f,%f\n",
event->x, event->y);
// Returning TRUE means we handled the event, so the signal
// emission should be stopped (don’t call any further callbacks
// that may be connected). Return FALSE to continue invoking callbacks.
return TRUE;
}
static GtkWidget*
create_image (void)
{
GtkWidget *image;
GtkWidget *event_box;
image = gtk_image_new_from_file ("myfile.png");
event_box = gtk_event_box_new ();
gtk_container_add (GTK_CONTAINER (event_box), image);
g_signal_connect (G_OBJECT (event_box),
"button_press_event",
G_CALLBACK (button_press_callback),
image);
return image;
}
When handling events on the event box, keep in mind that coordinates
in the image may be different from event box coordinates due to
the alignment and padding settings on the image (see Misc
).
The simplest way to solve this is to set the alignment to 0.0
(left/top), and set the padding to zero. Then the origin of
the image will be the same as the origin of the event box.
Sometimes an application will want to avoid depending on external data
files, such as image files. GTK+ comes with a program to avoid this,
called “gdk-pixbuf-csource”. This library
allows you to convert an image into a C variable declaration, which
can then be loaded into a gdk_pixbuf::Pixbuf
using
gdk_pixbuf_new_from_inline()
.
CSS nodes
GtkImage has a single CSS node with the name image. The style classes may appear on image CSS nodes: .icon-dropshadow, .lowres-icon.
Implements
ImageExt
, [MiscExt
][trait@crate::prelude::MiscExt], WidgetExt
, glib::ObjectExt
, BuildableExt
, ImageExtManual
, WidgetExtManual
, BuildableExtManual
Implementations
Creates a Image
displaying the given animation.
The Image
does not assume a reference to the
animation; you still need to unref it if you own references.
Image
will add its own reference rather than adopting yours.
Note that the animation frames are shown using a timeout with
G_PRIORITY_DEFAULT
. When using animations to indicate busyness,
keep in mind that the animation will only be shown if the main loop
is not busy with something that has a higher priority.
animation
an animation
Returns
a new Image
widget
Creates a new Image
displaying the file filename
. If the file
isn’t found or can’t be loaded, the resulting Image
will
display a “broken image” icon. This function never returns None
,
it always returns a valid Image
widget.
If the file contains an animation, the image will contain an animation.
If you need to detect failures to load the file, use
gdk_pixbuf::Pixbuf::from_file()
to load the file yourself, then create
the Image
from the pixbuf. (Or for animations, use
gdk_pixbuf::PixbufAnimation::from_file()
).
The storage type (ImageExt::storage_type()
) of the returned
image is not defined, it will be whatever is appropriate for
displaying the file.
filename
a filename
Returns
a new Image
Creates a Image
displaying an icon from the current icon theme.
If the icon name isn’t known, a “broken image” icon will be
displayed instead. If the current icon theme is changed, the icon
will be updated appropriately.
icon
an icon
size
a stock icon size (IconSize
)
Returns
a new Image
displaying the themed icon
Creates a Image
displaying an icon from the current icon theme.
If the icon name isn’t known, a “broken image” icon will be
displayed instead. If the current icon theme is changed, the icon
will be updated appropriately.
icon_name
an icon name or None
size
a stock icon size (IconSize
)
Returns
a new Image
displaying the themed icon
Creates a new Image
displaying pixbuf
.
The Image
does not assume a reference to the
pixbuf; you still need to unref it if you own references.
Image
will add its own reference rather than adopting yours.
Note that this function just creates an Image
from the pixbuf. The
Image
created will not react to state changes. Should you want that,
you should use from_icon_name()
.
pixbuf
a gdk_pixbuf::Pixbuf
, or None
Returns
a new Image
Creates a new Image
displaying the resource file resource_path
. If the file
isn’t found or can’t be loaded, the resulting Image
will
display a “broken image” icon. This function never returns None
,
it always returns a valid Image
widget.
If the file contains an animation, the image will contain an animation.
If you need to detect failures to load the file, use
gdk_pixbuf::Pixbuf::from_file()
to load the file yourself, then create
the Image
from the pixbuf. (Or for animations, use
gdk_pixbuf::PixbufAnimation::from_file()
).
The storage type (ImageExt::storage_type()
) of the returned
image is not defined, it will be whatever is appropriate for
displaying the file.
resource_path
a resource path
Returns
a new Image
Creates a new builder-style object to construct a Image
.
This method returns an instance of ImageBuilder
which can be used to create a Image
.
Trait Implementations
This method returns an ordering between self
and other
values if one exists. Read more
This method tests less than (for self
and other
) and is used by the <
operator. Read more
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
Returns the type identifier of Self
.
Auto Trait Implementations
impl RefUnwindSafe for Image
impl UnwindSafe for Image
Blanket Implementations
Mutably borrows from an owned value. Read more
Upcasts an object to a superclass or interface T
. Read more
Upcasts an object to a reference of its superclass or interface T
. Read more
Tries to downcast to a subclass or interface implementor T
. Read more
Tries to downcast to a reference of its subclass or interface implementor T
. Read more
Tries to cast to an object of type T
. This handles upcasting, downcasting
and casting between interface and interface implementors. All checks are performed at
runtime, while downcast
and upcast
will do many checks at compile-time already. Read more
Tries to cast to reference to an object of type T
. This handles upcasting, downcasting
and casting between interface and interface implementors. All checks are performed at
runtime, while downcast
and upcast
will do many checks at compile-time already. Read more
Casts to T
unconditionally. Read more
Casts to &T
unconditionally. Read more
Returns true
if the object is an instance of (can be cast to) T
.
pub fn set_properties_from_value(
&self,
property_values: &[(&str, Value)]
) -> Result<(), BoolError>
pub fn set_property<'a, N, V>(
&self,
property_name: N,
value: V
) -> Result<(), BoolError> where
V: ToValue,
N: Into<&'a str>,
pub fn set_property_from_value<'a, N>(
&self,
property_name: N,
value: &Value
) -> Result<(), BoolError> where
N: Into<&'a str>,
Safety Read more
Safety Read more
Safety Read more
Safety Read more
pub fn connect_notify<F>(&self, name: Option<&str>, f: F) -> SignalHandlerId where
F: 'static + Fn(&T, &ParamSpec) + Send + Sync,
pub fn connect_notify_local<F>(
&self,
name: Option<&str>,
f: F
) -> SignalHandlerId where
F: 'static + Fn(&T, &ParamSpec),
pub unsafe fn connect_notify_unsafe<F>(
&self,
name: Option<&str>,
f: F
) -> SignalHandlerId where
F: Fn(&T, &ParamSpec),
pub fn has_property<'a, N>(&self, property_name: N, type_: Option<Type>) -> bool where
N: Into<&'a str>,
pub fn find_property<'a, N>(&self, property_name: N) -> Option<ParamSpec> where
N: Into<&'a str>,
pub fn connect<'a, N, F>(
&self,
signal_name: N,
after: bool,
callback: F
) -> Result<SignalHandlerId, BoolError> where
F: Fn(&[Value]) -> Option<Value> + Send + Sync + 'static,
N: Into<&'a str>,
Same as connect
but takes a SignalId
instead of a signal name.
pub fn connect_local<'a, N, F>(
&self,
signal_name: N,
after: bool,
callback: F
) -> Result<SignalHandlerId, BoolError> where
F: Fn(&[Value]) -> Option<Value> + 'static,
N: Into<&'a str>,
Same as connect_local
but takes a SignalId
instead of a signal name.
pub unsafe fn connect_unsafe<'a, N, F>(
&self,
signal_name: N,
after: bool,
callback: F
) -> Result<SignalHandlerId, BoolError> where
F: Fn(&[Value]) -> Option<Value>,
N: Into<&'a str>,
Same as connect_unsafe
but takes a SignalId
instead of a signal name.
Emit signal by signal id.
Emit signal with details by signal id.
Emit signal by it’s name.
pub fn bind_property<'a, O, N, M>(
&'a self,
source_property: N,
target: &'a O,
target_property: M
) -> BindingBuilder<'a> where
O: ObjectType,
N: Into<&'a str>,
M: Into<&'a str>,
Same as emit
but takes Value
for the arguments.
Same as emit_by_name
but takes Value
for the arguments.
Returns a SendValue
clone of self
.
impl<'a, T, C> FromValueOptional<'a> for T where
C: ValueTypeChecker<Error = ValueTypeMismatchOrNoneError>,
T: FromValue<'a, Checker = C>,